读书人

调用dll无果的有关问题!

发布时间: 2013-04-02 12:35:26 作者: rapoo

调用dll无果的问题!!!!


//一个SDK封装接口

#define DLLDIR __declspec(dllimport)

typedef void ( CALLBACK *BMPCallback)(unsigned long callbackID, BITMAPINFO * info, unsigned char *data, unsigned long size);

extern "C"{

int DLLDIR SetBMPCallback(int hd, unsigned long callbackID, BMPCallback callback);
}



//打断点;这个函数无法调用!!!不知道是调用dll错误还是这个sdk里没有调用?
void CALLBACK mybmpCallback(unsigned long callbackID, BITMAPINFO * info, unsigned char *data, unsigned long size)
{
BITMAPFILEHEADER bfh = {0};
bfh.bfType=0x4D42;
bfh.bfOffBits = sizeof(BITMAPINFOHEADER) + sizeof(BITMAPFILEHEADER);
bfh.bfSize = bfh.bfOffBits + info->bmiHeader.biSizeImage; FILE *ofile = fopen("image.bmp", "wb");
fwrite(&bfh, sizeof(bfh), 1, ofile);
fwrite(&info->bmiHeader, sizeof(info->bmiHeader), 1, ofile); fwrite(data, 1, info->bmiHeader.biSizeImage, ofile);
fclose(ofile);
}



//调用DLL!!!!!!!!!!!!!!!!!!!!!!!
HMODULE hh = LoadLibrary(L".\\IPCam.dll");

typedef int (CALLBACK* PF_SetBMPCallback)(int hd, unsigned long callbackID, BMPCallback callback);

PF_SetBMPCallback CallSetBMPCallback = (PF_SetBMPCallback)GetProcAddress(hh, "SetBMPCallback");

CallSetBMPCallback(hd,1,mybmpCallback);

[解决办法]
调试时候有地址啊!调用方法对吗????????????
引用:
打印下hh和CallSetBmpCallback的地址是不是空

读书人网 >VC/MFC

热点推荐