我向一个Window传message,向传过去一个string.
可是进入消息相应函数都正常,就是读不出参数?代码如下:
HGLOBAL hglFilename ;
hglFilename = ::GlobalAlloc(GHND,strFileName.GetLength()+1);
LPSTR pbuf = (LPSTR)::GlobalLock(hglFilename);
::strcpy( pbuf , strFileName );
::GlobalUnlock( hglFilename );
SendMessage(hWnd,WM_PM_OPENFILE, 0,(LPARAM)hglFilename);请问是不是由于不在一个地址空间,传指针无效?那位高人有什么办法可以传String?
可是进入消息相应函数都正常,就是读不出参数?代码如下:
HGLOBAL hglFilename ;
hglFilename = ::GlobalAlloc(GHND,strFileName.GetLength()+1);
LPSTR pbuf = (LPSTR)::GlobalLock(hglFilename);
::strcpy( pbuf , strFileName );
::GlobalUnlock( hglFilename );
SendMessage(hWnd,WM_PM_OPENFILE, 0,(LPARAM)hglFilename);请问是不是由于不在一个地址空间,传指针无效?那位高人有什么办法可以传String?
解决方案 »
- 关于Ribbon:VC怎么设置RibbonCheckBox状态?
- 一维指针数组??????
- 两个DC类的问题(专家请进)
- 菜鸟请教sql server如何存储数组?
- 求助,VC++运行问题!!
- 怎样添加一个已经删除的类?
- 高分请教多文档应用程序最大化问题
- arvid_gs(west)领分啦...........................................................................
- 新手问题,请个位高手指点一下!
- vs2010下的dll头文件如何管理?
- VC中字体颜色问题
- keybd_event和wn_keydown wn_keyup和wn_char实现的功能有什么不同
GlobalAlloc(GMEM_MOVEABLE,strFileName.GetLength()+1);
http://expert.csdn.net/Expert/topic/2028/2028974.xml?temp=.4461786
typedef struct _Obj
{
CString Cs_Temp;
}Obj
Obj tempObj;
tempObj.Cs_Temp="发送字符"然后
sendMessage(WM_MY_MESSAGE,lparam,(LPVOID)tempObj);接收到的时候再(tObj*)tempObj
memset(lpBuf, 0, MAX_PATH);
memcpy(lpBuf, lpcszFileName, _tcslen(lpcszFileName));
PostThreadMessage(m_playProcess.dwThreadId, WM_PLAY_FILE1, 0, (long)(LPCTSTR)m_strCurrentFile);
//传送方
HANDLE h = OpenFileMapping(FILE_MAP_READ, FALSE, _T("share_memory_mdclient"));
if (h != NULL)
{
LPVOID lpBuf = MapViewOfFile(h, FILE_MAP_READ, 0, 0, MAX_PATH);
char szFileName[MAX_PATH];
memcpy(szFileName, lpBuf, MAX_PATH);
//接收方
我是这么实现跨进程传递数据的