利用别人的SDK做二次开发是很不舒服的事情,你不知道别人里面函数是怎么实现的,
如果给你的手册中函数定义错误了,你就使劲地折腾吧,一个下午就在猜测函数原型里度过了。今天下午多亏陈师兄帮忙,
算是连接上RFID阅读器的端口了。在显示加载DLL时,如果利用导出函数序号访问,最好在DOS下用DUMPBIN命令看下
ORIGINAL的序号,这样比较靠谱,晚上随便下的DLL函数查看器毕竟是别人写的,还是不靠谱。如果最后运行不成功
的话,就仔细看SDK的手册,大胆猜测函数原型吧,导出函数的入口地址也很重要,在调试中可以查看它的变量,是否是想
要的导出函数地址。WINDOWS编程还是要了解的,毕竟中国政府和大多数人都在用WINDOWS,做应用还是以广大人民群众为
标准的,WINDOWS讨厌的地方就是也时候不知道错误错在哪,毫无头绪,非常抓狂,而且图形界面抓捕消息的毕竟很臃肿
和冗余,一个小程序,IDE一弄,就几百K了
void CRFIDTESTDlg::OnPortopen()
{
// TODO: Add your control notification handler code here
long port = 1;
unsigned char com = 255;
unsigned char baud = 1;
long frmhandle = 1;
HINSTANCE hinst;
hinst=LoadLibrary("UHFReader.dll");
typedef int (WINAPI *OPENPORT)(long *, unsigned char *, unsigned char *, long *);
OPENPORT openport = (OPENPORT)GetProcAddress(hinst, MAKEINTRESOURCE(34));
int rst = openport(&port, &com, &baud, &frmhandle);
CString str;
str.Format("%d", rst);
MessageBox(str);
if(rst == 0)
MessageBox("端口打开成功");
else
MessageBox("端口打开失败");
}
参考资料:
1.《VC++深入详解》P725
2.http://blog.csdn.net/SeanSeanSeanSeanSean/archive/2008/10/24/3135141.aspx