Q&A

  • FreeLibrary(Handle)에 대해서 알려주세요
안녕하세요. 델 초보입니다.
제가 DLL관련 작업을 하고 있는데요,
Main에서 Dll을
LoadLibrary로 핸들값을 받아와서
Dll내의 데이타들을 Record값들로 받아옵니다.
그리고 받아온 값들을 화면에 뿌려주고 나서
FreeLibrary하는데..
에러가 나거든요. (참고로 FreeLibrary부분을 빼면 에러없이 잘됩니다.)
소스
procedure TForm1.SpeedButton2Click(Sender: TObject);
var
    S : String;
    FH  : THandle; (이건 전역변수로 선언했습니다.)
    nRtn : longBool;
    SendToMain : TSendToMain;
begin
    FH := LoadLibrary('PrjFdll.dll');
    if FH < 32 then begin
        ShowMessage('Not Found Dll!');
        Exit;
    end;

    @SendToMain := GetProcAddress(FH, 'SendToMain');
    RcvData := SendToMain(RcvData);

    NoValue.Text    :=  RcvData.StrNo;
    NameValue.Text  :=  RcvData.StrName;
    TelValue.Text   :=  RcvData.StrTel;
    AddrValue.Text  :=  RcvData.StrAddr;
    EtcValue.Text   :=  RcvData.StrEtc;

    nRtn := FreeLibrary(FH);
    if nRtn = False then begin
        GetLastError();
    end else begin
    //
    end;
end;
1  COMMENTS
  • Profile
    박진수 2003.06.20 23:41
    저도 님과 비슷한 경험을 했는데.. 혹 도움이 될런지요..
    팁 게시판에

    [팁]DLL 폼을 이미지 저장 창고로 활용하자 를 참고해 보세요