我可以在delphi中实现`_exit`c函数吗?

时间:2017-03-17 14:24:37

标签: delphi delphi-xe3

我想在delphi xe3中使用c obj文件。

链接obj文件时,显示以下错误:

`[dcc32 Error] Unit1.pas(149): E2065 Unsatisfied forward or external declaration: '_exit'`

我可以实现_exit功能吗?

1 个答案:

答案 0 :(得分:1)

是的,你确实可以做到这一点。通常,您将.obj文件链接到项目中的单个单元。在该单元中实现exit函数,Delphi链接器将找到它。

....

implementation

....

{$LINK foo.obj}

procedure _exit(status: Integer); cdecl;
begin
  // your implementation goes here
end;

正如我已经说明的那样,您将该功能放在单元的实现部分中。它不需要在设备外部可见。

您可能有多个不同的单元链接到C对象,在这种情况下,您可以将C运行时函数(如exit)放在一个单元中,并使用链接到C对象的其他单元。在那种情况下,您需要公开接口部分中的每个函数,以便链接器可以看到该函数。