2
我想在delphi xe3中使用c obj文件。我可以在delphi中实现`_exit`c函数吗?
当链接OBJ文件,显示了这个错误:
`[dcc32 Error] Unit1.pas(149): E2065 Unsatisfied forward or external declaration: '_exit'`
我可以实现_exit
功能?
我想在delphi xe3中使用c obj文件。我可以在delphi中实现`_exit`c函数吗?
当链接OBJ文件,显示了这个错误:
`[dcc32 Error] Unit1.pas(149): E2065 Unsatisfied forward or external declaration: '_exit'`
我可以实现_exit
功能?
是的,你确实可以做到这一点。通常,您会将.obj文件链接到项目中的单个单元。在该单元中实现exit
函数,Delphi链接器将找到它。
....
implementation
....
{$LINK foo.obj}
procedure _exit(status: Integer); cdecl;
begin
// your implementation goes here
end;
正如我已经说明的那样,您将函数放置在单元的实现部分。它不需要在设备外部可见。
您可能有多个链接到C对象的不同单元,在这种情况下,您可以将C运行时功能(如exit
)放置在一个单元中,并使用链接到C对象的每个其他单元的单元。在这种情况下,你需要暴露接口部分中的每个函数,以便链接器可以看到该函数。
怎么样:'procdure _exit(const Status:Integer); CDECL; external'msvcrt.dll'name'exit';'请注意有'_exit()','exit()'和'_Exit()':https://msdn.microsoft.com/en-us/库/ 6wdz5232.aspx – alk