tôi tổ chức mã nguồn ứng dụng của tôi vào đơn vị biên soạn Pascal sử dụng File -> New Unit
quy tắc cú pháp cho Lazarus Pascal thủ tục "đơn vị"
Các đơn vị sau biên dịch OK ...
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;
...
Tuy nhiên chương trình này có lỗi biên dịch như nó không thể xác định "ngoại lệ" tại dòng 6 ...
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);
...
Nếu tôi cho rằng Exception
được định nghĩa trong SysUtils
(làm thế nào tôi có thể nói?) Tôi không thể đưa uses SysUtils
trước interface
(trình biên dịch phàn nàn nó đã mong interface
)
Làm thế nào để nói với trình biên dịch rằng Exception
được định nghĩa trong SysUtils
?
Tôi nghĩ rằng bạn cần phải đặt 'cái sử dụng dòng SysUtils' ngay sau khi' dòng interface' (ví dụ: không trước khi nó). –