发送消息代码如下:
CString lstr;
CWnd::GetDlgItemTextA(IDC_EDIT1,lstr);
LPCSTR lps;
lps = _T(lstr);
lps = (LPCSTR)lstr;
//lps = "aaa";
::PostMessage(_hNotifyWnd,ON_COM_SENDCOMMOND,(WPARAM)lps,0);接收消息代码如下:
LPCSTR t = (LPCSTR)wParam;
CString lstr;
lstr = t;这样从文本框IDC_EDIT1得到的lstr就会被接收成乱码,发送之前得到的lps都没出现乱码的,使用::PostMessage(_hNotifyWnd,ON_COM_SENDCOMMOND,(WPARAM)&lps,0);时依旧是乱码。但是去掉注释那句 lps = "aaa";后,却能够正确接收到 "aaa"这个字符串。郁闷,求解。
CString lstr;
CWnd::GetDlgItemTextA(IDC_EDIT1,lstr);
LPCSTR lps;
lps = _T(lstr);
lps = (LPCSTR)lstr;
//lps = "aaa";
::PostMessage(_hNotifyWnd,ON_COM_SENDCOMMOND,(WPARAM)lps,0);接收消息代码如下:
LPCSTR t = (LPCSTR)wParam;
CString lstr;
lstr = t;这样从文本框IDC_EDIT1得到的lstr就会被接收成乱码,发送之前得到的lps都没出现乱码的,使用::PostMessage(_hNotifyWnd,ON_COM_SENDCOMMOND,(WPARAM)&lps,0);时依旧是乱码。但是去掉注释那句 lps = "aaa";后,却能够正确接收到 "aaa"这个字符串。郁闷,求解。
解决方案 »
- 如何获取正在连接的摄像头在设备管理器中的名字
- 如何给MSProject加右键菜单?
- 如何修改拦截到的数据包?
- 我的书上的程序,当直接执行的时候是可以的,当我有所修改,它就出现这样的编译错误,请问是什么意思啊?谢了!
- 挑战高手:我写的一个树控件生成目录树的算法,如果有人觉得自己有更经典的,欢迎踢场拿分!
- 按装了grgox的条形码打印机
- 在VIEW里面动态生成的CGRIDCTRL如何将自己的消息发送到VIEW
- 用vc编一个dos控制台程序。怎么调用图形处理单元,画点、画线等函数是什么?请给个列子
- ★★★简单问题:帮帮忙
- 关于.DLL????
- (在线等......)新建视图失败,求解!
- 请教几种接口在数据传输时的最小传输长度
lps = "aaa";---〉没有分配内存空间。
你如果在函数内声明并初始化该变量,离开函数,该变量就会被释放,其指针也会指向被释放的地址。postmessage不会堵塞,投递字符串地址之后就返回了,此时函数结束,指针指向的地址被释放。此时响应此消息的处理是用该指针属于无效调用如果是sendmessage就不会有这样的问题,因为必须等到该消息被处理了才会返回至于lps="aaa";为什么就可以。楼上的已经说得很清楚了
代码是
::SendMessage(_hNotifyWnd,ON_COM_SENDCOMMOND,(WPARAM)ishex,(LPARAM)&ccm);ccm是我定义的一个传递数据的结构。