|
funji 님이 쓰신 글 :
: GetProcAddress()를 사용하여 DLL내에 GetDLLData()라믐 한수를 부르려고합니다.
: 디버깅을하면 GetProcAddress()에서 부르는거에선 에러가 발생하지 않는데...
: GetDLLData()를 호출하면 접근할수 없다는 메세지창이나오면서
: 브레이크버튼을 클릭하면 CPU 창이 뜹니다...ㅠㅠㅠ
:
: //DataLoad.cpp
: ShareData = LoadLibraryA("ShareData.dll");
: if (!ShareData) {
: //ShowMessage("ShareData.dll not loaded");
: }
: else
: {
: GDReturnFunc_m GetDLLData;
: GetDLLData = (GDReturnFunc_m)GetProcAddress(ShareData, "GetDLLData");
: GetDLLData(); <<=== 여기서 에러가 납니다.ㅠㅠㅠ
: }
:
: //================================================================================
: //DataLoad.h
: typedef TGlobalDLLData * (*GDReturnFunc_m)();
: extern "C" __declspec(dllimport) TGlobalDLLData *__stdcall GetDLLData();
: //===============================================================================
:
: //ShareData.cpp
: extern "C" DLL_FUNC TGlobalDLLData *__stdcall GetDLLData();
:
: #pragma argsused
: TGlobalDLLData *__stdcall GetDLLData()
: {
: return GD;
: }
:
: 메모리를 잘못건드린거가여???ㅠㅠ
: 고수님들 부탁드립니다.
__declspec(dllexport) 가아니라 dllimport네요?
typedef TGlobalDLLData * (*GDReturnFunc_m)(); 여긴 __stdcall 없네요?
: extern "C" __declspec(dllimport) TGlobalDLLData *__stdcall GetDLLData(); 여긴 __stdcall 있는데?
dll안에 함수형식이랑 어플에 함수수형식이랑 같아야 함수를 가저오죠
틀린데 없는 함수라 나오겠죠
|