我使用MSComm打开被其它程序打开的串口,会报端口已被使用的错误提示,但像PORTMON软件可以监听任何正在被其它程序使用的串口。谢谢myjian,再教你一下,写驱动应该如何快速入手,另外在语言方面选择如VB是否可行?
请问如何使用VB监听已被其它程序打开的串口?
我的意思是编写驱动的语言从快速入手及可性行、程序稳定性方面考虑是用VB,JAVA,C++,C?
世上没有快速将白痴变为天才的方法。(呵呵,开个玩笑)
因为驱动开发要了解的东西是很多的,除了要了解操作系统的基本结构和组成基本知识,
还要了解另外一层的函数库,比如 NT_ 函数库,这些是普通程序员从来没用过的一系列
函数,他的作用层在 CPU 的 Ring0 层,普通的应用程序程序员通常只会接触到 Ring 3
层的 API 函数,这些 Ring 0 层函数量并不亚于 Ring 3 的函数量,而且有些还可能
在 Ring 3 层没有的运用概念,在DDK开发中,还提供了 DDK 的宏指令,这又会加大了
更多要搞清楚的知识数量,而且他的内存管理、任务管理、IO操作、总线协议、驱动与
驱动间的互动、通讯及控制,实现的方法和过程有些看上去根本不像在PC写程序,Windows
的开发概念也很淡(因为失去了一些 Windows 的 Ring 3 层的API函数支持)。
IRP包的结构、任务的委派、函数的指针等等等等还有很多东西。如果在结构上不清楚、
在原理上不认识、在开发理念上不明确,根本就没法开始思考,更别说是写程序,而且还
要实现某种功能。
驱动这一块开发通常都是用 C/C++ 语言,不过所谓的 C++ 也不见得支持得很好,要用
C++ 还有要注意的很多地方,否则就是系统崩溃的结果。通常一些入门的就是用一些线程
的工具来开发,如 WinDriver、DriverStudio 之类的东西(将DDK再封装,并且提供更
多方便的函数支持),普通点的就直接用 DDK 来开发,据一些牛人说:“用 DDK 都是小
儿科,直接用汇编上”,完全不用借助于 Microsoft 的 DDK。
所以这一块水很深的,如果对软硬件和计算机组成以及操作系统结构原理没有一定了解,
很难入手的。即使有入门的教程和书籍甚至是大量的范例,要想成功的实现一个稍微特别
点的小事情,也不是一下就能理解和掌握并实现的。
顶一下,楼上说的不错,就是找本入门的驱动的书看,里边一堆一堆用C写的结构体,虽然都用中文进行了详细的参数解释,但是仍然是看得人云里雾里的,入门都困难,实现功能就更不容易。
如果你的这个需求涉及到你一时不能解决的领域,你可以考虑以下几种方法来处理。
1、找现成的接口,能达到你目的的东西
2、项目外包,找一些专业人士来做接口
3、找现成的软件,然后把他包壳为你服务
4、暂时放弃,有时候有些并非决定性的功能在项目中是可以选择放弃的。
来源:足球直播