20楼#
发布于:2005-02-23 17:12
[quote]新麻烦出现,读共享内存后串口通讯就彻底中断 哪里的共享内存? [/quote] 发送端 int nDataLength=sizeof(ExpRCInterface::GetInstance()->m_tagRCIO); hMapping=CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,nDataLength,\"MYSHAREDATA\"); MapViewOfFile(.....) memcpy(lpData,&ExpRCInterface::GetInstance()->m_tagRCIO,nDataLength); //tell receiver the struct has been modified pWnd->PostMessage(WM_COMM_MESSAGE,1,nDataLength); 接收端: int nDataLength=sizeof(ExpRCInterface::GetInstance()->m_tagRCIO); hMapping=CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,nDataLength,\"MYSHAREDATA\"); MapViewOfFile(.....) memcpy(&ExpRCInterface::GetInstance()->m_tagRCIO,lpData,lParam); |
|
21楼#
发布于:2005-02-23 18:35
应该不会,我在一些产品中就有同时访问共享内存和串口,也没有发现你这样的问题。
[quote][quote]新麻烦出现,读共享内存后串口通讯就彻底 哪里的共享内存? [/quote] 发送端 int nDataLength=sizeof(ExpRCInterface::GetInstance()->m_tagRCIO); hMapping=CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,nDataLength,\"MYSHAREDATA\"); MapViewOfFile(.....) memcpy(lpData,&ExpRCInterface::GetInstance()->m_tagRCIO,nDataLength); //tell receiver the struct has been modified pWnd->PostMessage(WM_COMM_MESSAGE,1,nDataLength); 接收端: int nDataLength=sizeof(ExpRCInterface::GetInstance()->m_tagRCIO); hMapping=CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,nDataLength,\"MYSHAREDATA\"); MapViewOfFile(.....) memcpy(&ExpRCInterface::GetInstance()->m_tagRCIO,lpData,lParam); [/quote] |
|
|
22楼#
发布于:2005-02-24 08:17
理论上是不会的。我坐的是两个进程间的通信,一个通讯进程,一个处理图像进程。通讯进程向处理图像进程串数据没有问题。处理图像进程向通讯金城川问题也没问题,但是通讯机程介收到数据从湘西响应函数出来后通讯就彻底中断了。
|
|
23楼#
发布于:2005-02-24 10:56
理论上是不会的。我坐的是两个进程间的通信,一个通讯进程,一个处理图像进程。通讯进程向处理图像进程串数据没有问题。处理图像进程向通讯金城川问题也没问题,但是通讯机程介收到数据从湘西响应函数出来后通讯就彻底中断了。 最关键的这句“但是通讯机程介收到数据从湘西响应函数出来后通讯就彻底中断了”看不懂 |
|
|
24楼#
发布于:2005-02-24 17:21
[最关键的这句“但是通讯机程介收到数据从湘西响应函数出来后通讯就彻底中断了”看不懂 不好意思,是“但是通讯进程接收到数据从消息响应函数出来后通讯就彻底中断了”。 现在问题已经解决,是因为共享内存里把处理图像的进程的句柄也打了进来。更改了通讯进程的句柄。 谢谢各位的回复啊,分别赠送5分作为感谢。 |
|
25楼#
发布于:2005-02-25 08:18
[quote][最关键的这句“但是通讯机程介收到数据从湘西响应函数出来后通讯就彻底中断了”看不懂 不好意思,是“但是通讯进程接收到数据从消息响应函数出来后通讯就彻底中断了”。 现在问题已经解决,是因为共享内存里把处理图像的进程的句柄也打了进来。更改了通讯进程的句柄。 谢谢各位的回复啊,分别赠送5分作为感谢。 [/quote] 本想多给点,但是可用分只有这么多了,下次给吧。 |
|
上一页
下一页