LPARAM与CString或者char能否相互转化, 急,在线等
对话框程序,对话框用于显示,开了一个辅助线程,用于数据接收
自己定义了一个消息WM_WHM_REV,以及相应的消息处理函数OnWhmRev(WPARAM wParam, LPARAM lParam)
在辅助线程里面这样处理
SendMessage(hSendWnd, WM_WHM_REV, NULL, (LPARAM)strResponse);//strResponse为接受到的字符串
现在接收到字符后,确实相应了OnWhmRev函数
现在想通过消息把字符串strResponse传递过来,请问如何处理? 谢谢
问题点数:30、回复次数:6Top
1 楼gzl(HR)回复于 2004-09-04 15:41:03 得分 5
用(CString)strResponse强制类型转换试试。
建议用WPARAM参数传递CString数据。我用过这个,没问题。Top
2 楼whmsd()回复于 2004-09-04 15:49:08 得分 0
能给个用WPARAM传递字符串的说明语句么?谢谢Top
3 楼kpld8888(kpld)回复于 2004-09-04 17:56:27 得分 5
传递指针吧,毕竟WPARAM是个32位数,而指针也是的。直接传递字符串,如果字符串比较长,结果肯定不对Top
4 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2004-09-04 18:32:14 得分 5
直接用wparam传递指针,不会出错Top
5 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2004-09-05 10:19:57 得分 5
WPARAM->UINT,LPARAM->LONG
应该说用WPARAM,LPARAM传递指针都不会有太大问题。只是此处你不应该对CString进行强制转换,而应该转换CString.GetBuffer().
SendMessage(hSendWnd, WM_WHM_REV, NULL, (LPARAM)strResponse.GetBuffer());//strResponse为接Top
6 楼yzx0023(无聊客)回复于 2004-09-05 10:43:46 得分 10
其实也可以不用GetBuffer,你可以这么写:
SendMessage(hSendWnd, WM_WHM_REV, NULL, (LPARAM)(LPCSTR)strResponse);
Top




