软件注册站
热情软件屋

 
C++ Builder怎样读写硬件口地址
编号: QA003145    
建立日期: 2000年7月10日 最后修改日期: 2001年11月11日
所属类别: C/C++ - DDK与硬件设备
   
    操作系统: Win98
    编程工具: C++ Builder
    问题: C++ Builder 作为C++编程工具,应该具有低级接口的控制能力,但我用C++ Builder 4.0好象没有类似inport(),outport()的函数,不知怎样读写硬件口地址,请指教!
    水平: 中级(小许)
   
    BCB支持内嵌汇编,可以直接在Win9x下访问端口。如:
     short n;
     unsigned short addr;
     ...
     __asm{
     mov dx, addr
     in ax, dx
     mov n, ax
     }
    远问:
    bcb中,似乎不能用内嵌汇编 in ax,dx?!你怎么说可以,哪里还有错误吗?
    答:BCB中的确可以使用内嵌汇编,这一点没有问题。但是in指令只能在Win9x下调用。如果在NT下,编译时不会产生任何问题,但运行时会出错,这是NT的限制,不是BCB的问题(参考QA001296 "如何在WindowsNT/2000下用VB6写硬件IO控制")。
    
    叫我明儿吧的意见:
    无意找到这个网页,对小许的问题给一个回答,C++BUILDER4.0我正在用,而且做的也是关于串口的通讯传输,你在CB中要实现对串口的编程,需要用到一个控件,这个控件你可以在VB中找到,这样吧,如果你需要这方面的知识,可以和我联系,我的信箱是cokky-boy@yeah.net。至于“回答”中的方法我也试验过,不过没有实现,也就是说可以通过示波器观察串口是被占用而且发了数据,但是收不到任何东西--文本和二进制数,我研究过,发现用定义的函数(内部用汇编)虽然在道理上正确,但是可行性不好。
    主持人注:我们原来的回答主要考虑的是读写任意端口,而MSCOMM控件只能针对串口。对于串口,我们推荐QA000986 "使用C++ Builder编写串行接口程序"
    
    相关问题:
    QA001296 "如何在WindowsNT/2000下用VB6写硬件IO控制"
    
    香水橙子问:
    以上的意见都是对于VC和VB的,有人知道在C语言中如何处理这个问题吗?
    答:在标准的ANSI C中是没有硬件操作函数的。这个问题与操作系统和你使用C语言系统有关。
    
    相关书籍:
    《串行端口大全》
    《Delphi 串口通信编程》

    

此问题由李海回答。

附加关键字:编程, 源程序, programming, source code, C/C++, MFC, C++ Builder, Borland C++, Turbo C, C, BCB, DDK与硬件设备, hardware, ddk, vtoolsd, driver studio, winrt

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio