foresun 님이 쓰신 글 :
: 안녕하세요.
: kylix3를 이용하여 so 파일을 만들었습니다.
: __declspce(dllexport) 함수를 이용하여 외부 노출 함수를 하나 만들었습니다.
:
: 클라이언트 프로그램에서 so에 있는 외부 함수를 불러오는 방법을 알고 싶습니다.
: 답변을 기다리면서....
제가 작성한 CrossPlatform 라이브러리 로딩 함수 입니다.
윈도우에서는 DLL 을 Linux 에서는 so 파일을 로딩합니다.
unit LoadLib;
interface
uses Classes,Types,{$IFDEF MSWINDOWS}windows{$ENDIF}{$IFDEF LINUX}libc{$ENDIF};
function LoadResourceLibrary(ResourceFileName : string):dword;
implementation
function LoadResourceLibrary(ResourceFileName : string):dword;
begin
{$IFDEF MSWINDOWS}
Result := LoadLibrary(Pchar(ResourceFileName));
{$ENDIF}
{$IFDEF LINUX}
Result := dword(dlOpen(Pchar(ResourceFileName),RTLD_LAZY));
{$ENDIF}
end;
여기에서 dlOpen 이 리눅스에서 so 파일을 로딩하는 함수 입니다.
여기 함수의 역활은 리소스 dll 을 로딩하고, 그것의 핸들을 반환하는 함수입니다.
|