New Unit 将应用程序的源代码组织到 Pascal 编译单元中 以下单元编译正常... unit CryptoUnit; {$mode objfpc}{$H+} inte-6ren">
gpt4 book ai didi

Lazarus Pascal 过程的语法规则 "Units"

转载 作者:行者123 更新时间:2023-12-02 00:03:24 26 4
gpt4 key购买 nike

我使用 File -> New Unit 将应用程序的源代码组织到 Pascal 编译单元中

以下单元编译正常...

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;
...

但是这个有编译错误,因为它无法识别第 6 行的“Exception”...

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);
...

如果我假设 Exception定义于 SysUtils (我怎么知道?)我不能输入 uses SysUtils之前interface (编译器提示它期望 interface )

如何告诉编译器 Exception定义于 SysUtils

最佳答案

您的单元使用的其他单元应在接口(interface)关键字之后、接口(interface)部分中的其他语句之前引用。

您的示例应采用以下形式:

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);

关于Lazarus Pascal 过程的语法规则 "Units",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18408037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com