|
먼저 읽어주셔서 감사합니다.
VC++로 작성된 DLL에 데이터를 받아올 콜백함수를 등록하려 합니다.
아래와 같이 작성을 했는데 어째 제대로 동작을 하지 않는 것 같아 질문드립니다.
답변 부탁드릴께요.
VC로 작성된 dll안에는 아래와 같이 선언되어 있습니다.
bool callback
{
void __stdcall ReadData(char *szbuf, int nlen)
}
위 dll에서 특정 이벤트가 발생하면 빌더에 선언된 함수로 값을 받아 오려 하는데 함수 포인터를 사용해 본적이
없어 좀 어렵네요... ^^;
// 선언(DLL함수)
typedef bool __stdcall (*pCallBack)(AllocBuffer);
// 이런식으로 선언을 해도 되는지......
void __fastcall TForm1::AllocBuffer(char* szbuf, int nlen)
{
..... 데이터 처리
}
//아래와 같이 테스트를 해봤는데 잘 안되네요..
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HINSTANCE hInst;
pCallBack CallBack;
hInst = LoadLibrary("test.dll");
if (hInst)
ShowMessage("Load Success");
else
ShowMessage("Load Fail");
CallBack = (pSetCallBack)GetProcAddress(hInst, "testfunc");
if (CallBack)
{
if (CallBack(AllocBuffer)) // 콜백함수 등록
ShowMessage("Call Success");
else
ShowMessage("Call Fail");
}
}
|