|
아래와 같이 코드를 작성했는데 이게 맞는지 좀 부탁드릴께요.
dll 로드하고 export된 함수 호출까지는 되는 것 같은데 어째 다른 동작이 되질 않는 것 같아 혹시
문법에 문제가 있나 해서 문의 드립니다.
그럼 다들 즐거운 하루 보내세요~
VC++ DLL에 아래와 같이 선언되어 있습니다.
typedef void (__stdcall *ReadResultMainCbFunc)(char*, int); //Read Callback Function Pointer
typedef BOOL (*PFN_JSetCallback)(ReadResultMainCbFunc);
typedef BOOL (*PFN_JOpenPort)(UINT, UINT, int, int, int);
typedef BOOL (*PFN_JSendData)(char*);
빌더쪽도 위와 동일하게 선언해 두었구요
typedef void (__stdcall *ReadResultMainCbFunc)(char*, int);
typedef BOOL (*PFN_JSetCallback)(ReadResultMainCbFunc);
typedef BOOL (*PFN_JOpenPort)(UINT, UINT, int, int, int);
typedef BOOL (*PFN_JSendData)(char*);
HINSTANCE hInst;
// 콜백함수 정의
void ReadResultMainCbFunc(char* szbuf, int nlen)
{
ShowMessage("콜백데이터 처리");//return pBuffer;
}
// 버튼클릭
void __fastcall TForm1::Button1Click(TObject *Sender)
{
PFN_JSetCallback SetCallBack;
bool brtn;
hInst = NULL;
hInst = LoadLibrary("jdslib.dll");
if (hInst)
ShowMessage("Load Success");
else
ShowMessage("Load Fail");
SetCallBack = (PFN_JSetCallback)GetProcAddress(hInst, "JSetCallback");
if (SetCallBack)
{
// CallBack 함수 등록
brtn = SetCallBack(ReadResultMainCbFunc);
if (brtn)
ShowMessage("Call Success");
else
ShowMessage("Call Fail");
}
else
ShowMessage("Get Address Fail");
}
|