希望实现启动一个进程打开一个串口,再运行另一个进程也打开此串口,要求两个串口能同时对此串口进行操作,如何实现
我尝试用内存映射方式共享打开串口的句柄,失败
是否有更好的方式
我尝试用内存映射方式共享打开串口的句柄,失败
是否有更好的方式
解决方案 »
- 哪位可以提供摄像头,麦克风监控/录像/录音的源代码参考,谢谢
- 如何获取其他程序Messagebox的内容?
- 在串行化的保存文档里,怎样才能让输入的数据换行?
- 谁能提供一下vc.net下大包的详细过程,每次我建立部署的时候做到第2步就不知道怎么往下了
- 如何在程序中构造网页访问操作,并改变自己的REMOTE_ADDR信息
- 请问vc中的描述控件大小的是什么单位,怎么和像素不一致,应该如何换算
- RC4对文件解密遇到问题
- 帮我查看为什么我重载矩阵类的加(+)运算符的时候不能通过编译??
- 【求助】从CListCtrl里面把数据写到数据库里面,顺序错误的问题
- 我怎样在视图区显图标?
- 字符串如何截断后面的一小部分?
- 问一个数据传输的问题
这也正是是Windows驱动分层的思想
另其实你可以用一个独立程序(服务端)作为操作中转,把其他所有进程(客户端)需要读、写的数据用内存映射与服务端进行通信,一切访问操作都由服务端进行。
只有执行完毕再打开.如果上一个动作没有执行完则等待
-------------
既然这样,那你就谁要用谁打开好了,完了马上关闭。个人感觉你这种解决方案也不是长久之计,到下一版再改进好了/。或者你就用wangk(倒之)的方法DuplicateHandle试试。
虽然可能是同一应用程序
这样DuplicateHandle还能用吗
你可以建立一个内核对象(同步,互斥多可以,传入对象名,比如"aaaMutex"),然后进行开启的时候创建这个对象,如果可以建立,那么说明还没有相关程序开启,如果返回错误,可以查看错误代码是否为ERROR_ALREADY_EXISTS, 如果是,那么说明已经有相关程序开启,就可以DuplicateHandle了.HANDLE h = CreateMutex(NULL,FALSE,"aaaMutex");
if(GetLastError()==ERROR_ALREADY_EXISTS)
{}
所以进程相互是独立的关系,没有问题。
是否说明源进程复制句柄时需事先知道目标进程的句柄
这样的话,我后面的进程还没调用,那来的句柄呢
hSourceProcessHandle是A
hTargetProcessHandle是B
hSourceHandle是C
是在A程序中使用DuplicateHandle吗那B中如何获得C的访问呢