dll 파일만 있고 VC에서 사용법만 알고 있는데 델파이에서 사용코자하는데 Handle 뒤의 함수명을 잘 모르는
상태에서 아래에서 @DllFunc= nil만 돌아오니,
좀 도와주세요.......
<!code
DllFunc = function(ctime,id:AnsiString; gid:integer) : AnsiString ; stdcall;
Handle := 0;
Handle := LoadLibrary(PChar('ECode.dll'));
@DllFunc := nil;
@DllFunc := GetProcAddress(Handle, 'DCode'); //요기 함수명이 정확해야하나요? 잘 모르는데.
if @DllFunc = nil then
showmessage('')
else
strCID := DllFunc('091111', 'test', 6);
FreeLibrary(Handle);
--code>
안녕하세요. 지나가다가 잠깐 글 남깁니다.
저도 DLL 동적으로 불러다가 가끔 사용하는데...
VC에서 사용한 DLL 내부에서 선언한 함수명을 알아야 동적으로 DLL Load 하실수 있을 겁니다.
GetProcAddress(Handle, 함수명); // 요기 함수명을 정확히 모르시면 난감하겠는데요!!
함수명이 정확하시다면...
예전에 C#에서 만든 DLL을 Delphi에서 사용했었는데..
Stdcall 대신에 cdecl 로 사용하니 된적이 있었습니다...
대략 차이점은 전달한 변수의 메모리 사용해제를 누가(Call 한데서, 또는 Call 당한데서) 하느냐의
차이로 알고 있습니다.
잠깐 시험삼아 Test 해보시는 것도... 좋을 듯 합니다.