안녕하세요. 델 초보입니다.
제가 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;
팁 게시판에
[팁]DLL 폼을 이미지 저장 창고로 활용하자 를 참고해 보세요