作了一个简单内存共享的程序,为什么输出的时候不能显示共享的内容?
部分代码如下:
void CCSocketDlg::OnDataReadyMsg(WPARAM wParam, LPARAM lParam)
{
char RecvBuf[10];
CString recvstr;
HANDLE m_hReceiveMap;
LPBYTE m_lpbReceiveBuf;
m_hReceiveMap = OpenFileMapping(FILE_MAP_READ, FALSE, "DataMap");
if (m_hReceiveMap == NULL)
return;
m_lpbReceiveBuf = (LPBYTE)MapViewOfFil(m_hReceiveMap,FILE_MAP_READ,0,0,0);
if (m_lpbReceiveBuf == NULL)
{
CloseHandle(m_hReceiveMap);
m_hReceiveMap=NULL;
}
memcpy(RecvBuf, (char*)(m_lpbReceiveBuf), (int)lParam);
recvstr.Format("接收到的信息为%s",(char*)RecvBuf);
~~~~~~~~~~~~~~~~~~~~~~~~为什么这里显示的是:接收到的信息为(后面是一些空白,我拷过来就是这些: )
UnmapViewOfFile(m_lpbReceiveBuf);
m_lpbReceiveBuf = NULL;
CloseHandle(m_hReceiveMap);
m_hReceiveMap = NULL;
}谢了先
部分代码如下:
void CCSocketDlg::OnDataReadyMsg(WPARAM wParam, LPARAM lParam)
{
char RecvBuf[10];
CString recvstr;
HANDLE m_hReceiveMap;
LPBYTE m_lpbReceiveBuf;
m_hReceiveMap = OpenFileMapping(FILE_MAP_READ, FALSE, "DataMap");
if (m_hReceiveMap == NULL)
return;
m_lpbReceiveBuf = (LPBYTE)MapViewOfFil(m_hReceiveMap,FILE_MAP_READ,0,0,0);
if (m_lpbReceiveBuf == NULL)
{
CloseHandle(m_hReceiveMap);
m_hReceiveMap=NULL;
}
memcpy(RecvBuf, (char*)(m_lpbReceiveBuf), (int)lParam);
recvstr.Format("接收到的信息为%s",(char*)RecvBuf);
~~~~~~~~~~~~~~~~~~~~~~~~为什么这里显示的是:接收到的信息为(后面是一些空白,我拷过来就是这些: )
UnmapViewOfFile(m_lpbReceiveBuf);
m_lpbReceiveBuf = NULL;
CloseHandle(m_hReceiveMap);
m_hReceiveMap = NULL;
}谢了先
to bulepaper(雷鸟) 改成英文也没用。问题到底出在哪呢
one or more breakpoint can not be set and have been disabled Execution will stop at the beginning of the program。
可我的是debug版啊!
并没有将数据拷到数组中,不知是什么原因??