Q&A

  • [질문]VC에서 만든 dll 사용시 무엇이 문제인지?

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>

1  COMMENTS
  • Profile
    newneo 2011.11.19 20:54

    안녕하세요. 지나가다가 잠깐 글 남깁니다.

    저도 DLL 동적으로 불러다가 가끔 사용하는데...

     

    VC에서 사용한 DLL 내부에서 선언한 함수명을 알아야 동적으로 DLL Load 하실수 있을 겁니다.

    GetProcAddress(Handle, 함수명);  // 요기 함수명을 정확히 모르시면 난감하겠는데요!!

     

    함수명이 정확하시다면...

    예전에 C#에서 만든 DLL을 Delphi에서 사용했었는데..

    Stdcall 대신에 cdecl 로 사용하니 된적이 있었습니다...

    대략 차이점은 전달한 변수의 메모리 사용해제를 누가(Call 한데서, 또는 Call 당한데서) 하느냐의

    차이로 알고 있습니다.

    잠깐 시험삼아 Test 해보시는 것도... 좋을 듯 합니다.