2013-08-23 9 views
6

ich meine App-Quellcode in Pascal Kompilierungseinheiten File -> New UnitSyntaxregeln für Lazarus Pascal prozedurale „Einheiten“

Die folgende Einheit OK kompiliert ...

unit CryptoUnit; 

{$mode objfpc}{$H+} 

interface 
    function Encrypt(key, plaintext:string):string; 
    function Decrypt(key, ciphertext:string):string; 

implementation 

uses 
    Classes, SysUtils, Blowfish; 

function Encrypt(key, plaintext:string):string; 
... 

jedoch mit organisieren dieses hat Kompilierungsfehlern als es kann nicht Linie 6 ...

bei „Exception“ identifizieren
unit ExceptionUnit; 

{$mode objfpc}{$H+} 

interface 
    procedure DumpExceptionCallStack(E: Exception); // <--- problem 

implementation 

uses 
    Classes, SysUtils, FileUtil; 


{ See http://wiki.freepascal.org/Logging_exceptions } 

procedure DumpExceptionCallStack(E: Exception);  
... 

Wenn ich davon ausgehe, dass Exception in SysUtils definiert ist (wie kann ich sagen?) Ich kann nicht setzen uses SysUtils vor interface (der Compiler beschwert wurde interface)

erwarten Wie kann ich feststellen, den Compiler, dass Exception in SysUtils definiert ist?

+0

Ich glaube, Sie das setzen müssen 'verwendet SysUtils' Zeile unmittelbar nach der' interface' Linie (das heißt, bevor es nicht). –

Antwort

6

Andere Einheiten, die von Ihrer Einheit verwendet werden, müssen nach dem Schlüsselwort interface, aber vor anderen Anweisungen im Abschnitt interface referenziert werden.

Ihr Beispiel in der folgenden Form funktionieren soll:

unit ExceptionUnit; 

{$mode objfpc}{$H+} 

interface 

uses 
    Classes, SysUtils, FileUtil; 

procedure DumpExceptionCallStack(E: Exception); 

implementation 

{ See http://wiki.freepascal.org/Logging_exceptions } 

procedure DumpExceptionCallStack(E: Exception); 
Verwandte Themen