有一个TC下的老程序,用VC改了以后。将inportb改为inpw和将outportb改为outpw重新编译执行(win 98 下),忽然发现出现了很多意外的问题,如从在同一时间inpw(0x???)读出的值竟和使用inportb读出的数不同,inpw读出的数据竟然不对(有频率器参照). 请教各位同学inpw和outpw与inportb和outportb内在的区别是什么?怎样正确使用inpw和outpw
解决方案 »
- ON_EVENT(用SendMessage或者PostMessage发送。该怎么写。怎么发送?
- 全局线程函数中如何给CView类发送自定义消息?
- 奇怪的问题,高手请进!!!
- 请问那儿有<<COM本质论>>下载
- 请问如何存取IP地址
- vc 环境执行try时我没有throw出异常,为何我还能catch到异常?代码如下
- 新手问题,怎样保存CComboBox框中更改的数据
- XML大怪问题!
- 一个关于MDI的极简单问题???《《《《在线等待》》》》
- 请问我怎么样才能在CView里面获得CMainFrame里的变量的值啊?
- 在MFC里用Dao,怎么把CString类转换成COleVariant类? ====很急啊===
- 问一个问题,可能比较弱智,大家帮忙看看
error LINK2001:Unresolved external symbol _inp
error LINK2001:Unresolved external symbol _outp
fatal error LNK1120:2 Unresolved externals.
以上方法只适用于Win9x,在Windows NT/2000下任何硬件I/O操作均需要通过设备启动程序。你可以借助DDK(http://www.microsoft.com/ddk)编写设备驱动程序。当然你也可以购买现成的软件,如http://zealsoft.diy.163.com/cn/ntport/。
为什么读出的数据不同呢?从同一个端口在同一状态
那么inpw读0x70的数据为1000 0001 xxxx xxxx 当然用Debug看到的结果肯定是不一样的,但是它们的二进制代码的其中八位,肯定是相同的;Good Luck
WORD val = 0x0000;
#ifdef VC_USE
val = inpw(0x1234);
#else
val = inportb(0x1234;
#endifprintf("Val = %#x",val);上面说个大概,结果inpw返回的数是0x02,而inportb返回的是0x04
由于inpw 返回的结果不对,导致程序根本没法正常使用。而且无法用DEBUG模式
,所以内部运行无从查其。各位壮士幸苦了