 |
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。
|