Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[1673] [답변] IOSYS2/ [델] DLL 에 대하여...
말근샘물 [ ] 1500 읽음    1998-03-02 13:11
델파이에서는 DLL의 함수들을 엑세스하기 위해 C++ DLL과 마찬가지로 함수명을
external로 선언해서 씁니다.  즉,

function FuncA (N: integer): Integer; stdcall; external 'XXXX.DLL'

이렇게 선언하고 나중에 FuncA를 호출하면 'XXXX.DLL'이 프로그램 path에 있는한
이상없이 실행되지요. 이때는 프로그램의 시작과 동시에 델파이가 이 DLL을 로드
해주는 겁니다.

질문처럼 실행중에 DLL을 로드하려면 API를 써야 합니다. 즉, LoadLibray()를
써서 DLL을 메모리에 로드하고 GetProcAddress()를 써서 메모리에서의 주소를
구한다음 필요한 함수를 호출하는 거죠. 아래 예제를 참고하세요.

var
  Hinst: THandle;
  FPointer: TFarPorc;
  Myfunct: TIntFunction;
begin
  HInst := LoadLibrary('XXXX.DLL');
  if HInst > 0 then
  try
    FPoineter := GetProcAddress(HInst, 'FuncA');
    if FPointer <> nil then begin
      MyFunct := TIntFunction (FPointer);
      Label1.Caption := MyFunct (IntValue);
    end;
    else
      ShowMessage('DLL function not found');
  finally
    FreeLibrary(HInst);
  end
  else
   ShowMessage('Liabrary not found');
end;


     



+ -

관련 글 리스트
1673 [답변] IOSYS2/ [델] DLL 에 대하여... 말근샘물 1500 1998/03/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.