我想在delphi xe3中使用c obj文件。
链接obj文件时,显示以下错误:
`[dcc32 Error] Unit1.pas(149): E2065 Unsatisfied forward or external declaration: '_exit'`
我可以实现_exit
功能吗?
答案 0 :(得分:1)
是的,你确实可以做到这一点。通常,您将.obj文件链接到项目中的单个单元。在该单元中实现exit
函数,Delphi链接器将找到它。
....
implementation
....
{$LINK foo.obj}
procedure _exit(status: Integer); cdecl;
begin
// your implementation goes here
end;
正如我已经说明的那样,您将该功能放在单元的实现部分中。它不需要在设备外部可见。
您可能有多个不同的单元链接到C对象,在这种情况下,您可以将C运行时函数(如exit
)放在一个单元中,并使用链接到C对象的其他单元。在那种情况下,您需要公开接口部分中的每个函数,以便链接器可以看到该函数。