我用MFC建立了一个基于对话框的程序,然后我将WINIO程序的LIB文件加载进了我的工程,然后我在对话框的初始化函数中调用了InitializeWinIo函数,但奇怪的是该函数的返回值始终是0,即是说初始化不能成功,而我用WINIO包中的WIN32示例程序是可以初始化的,这就怪了,难道WINIO程序的提供的动态链接库不能在MFC中使用,应该不会吧,请你帮忙分析一下指出原因,谢谢您!
解决方案 »
- 使用win32 api如何实现,在窗口中的一个文本,然后双击进入可编辑状态
- 单线程问题 走过路过 不要错过啊!!!!!!!!!!!!!!
- 请问QQ界面相关问题
- vc不能调试!!
- 程序在XP系统中兼容256色模式下运行
- (简单问题)这样做为什么树控件得图标不能显示出来?
- DzqSuper的关于记事本和类型转换的问题,可能人人都会,就我不会,来者有分领,在线等哦
- 用VC++调用Matlab数学和图形库的问题----在线等待
- 简单问题在线求问
- 我在SDI窗体中增加一个CEDITVIEW,如何使得我在左边输入的字符,也在右边显示?
- 一段代码的运行时间用什么函数来计算?
- Vc中应用ADO数据库编程。 #import语句导入链接库时出现编译错误。请各位大师指点!!一定加分!!
DWORD test;
SetPortVal(0x378, 10, 4);
GetPortVal(0x378, &test, 4);
printf("test=%d",test);
奇怪的是最后得到的结果不是test=10,而是test=-4161782
然后我将SetPortVal函数和GetPortVal函数的最后一个参数改为2后,
得到的结果是:test=32522
最后我将SetPortVal函数和GetPortVal函数的最后一个参数改为1后,
得到了正确结果:test=10
请问在SetPortVal函数和GetPortVal函数的最后一个参数为2或4的时候,数值10是写入错误还是读出错误?为什么会出现这样的错误?如何解决?谢谢!
printf("test=%u",test);
因为从端口读来的值都是无符号数,你按有符号数来显示的话(DWORD中bit31是符号位)当然不对咯^_^
printf("test=%u",test),而且test数据类型也改为了unsigned long,打印结果从原来test=-4161782变为了test=4290805514,也不是正确答案test=10.请问为什么?
我按照的你的代码将SetPortVal函数和GetPortVal函数的最后一个参数改为1后,也得不到10,仍然得到的是4294967295,也就是16进制的0xFFFFFFFF。就是说寄存器0x378读取不成功或不能读取。你先确定0x378是什么端口,能不能随便读写,最好换个端口试试。