2017-03-17 5 views
2

델파이 xe3에서 C obj 파일을 사용하고 싶습니다. 내가 _exit 기능을 구현할 수델파이에서`_exit`c 함수를 구현할 수 있습니까?

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

: OBJ 파일을 링크 할 때

이 오류를 보여줍니다?

+0

다음과 같은 경우 :'procdure _exit (const Status : Integer); cdecl; external 'msvcrt.dll'name 'exit';'exit() 및 _Exit()가 있음을 알아 두십시오 : https://msdn.microsoft.com/en-us/ library/6wdz5232.aspx – alk

답변

1

네, 실제로이 작업을 수행 할 수 있습니다. 일반적으로 프로젝트의 단일 유닛에 .obj 파일을 연결합니다. 해당 단위에 exit 함수를 구현하면 델파이 링커가이 함수를 찾습니다.

.... 

implementation 

.... 

{$LINK foo.obj} 

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

여기에 설명했듯이이 기능을 장치의 구현 섹션에 배치합니다. 장치의 외부에서 볼 필요는 없습니다.

C 개체에 링크하는 여러 개의 다른 단위가있을 수 있습니다.이 경우 exit과 같은 C 런타임 함수를 단일 단위로 배치하고 C 개체에 연결된 다른 단위의 단위를 사용할 수 있습니다. 이 시나리오에서는 링커가 함수를 볼 수 있도록 인터페이스 섹션에 각 함수를 표시해야합니다.

관련 문제