如何将cstring的对象作为sendmessage 的一个参数传递 ?谢谢 如何将cstring的对象作为sendmessage 的一个参数传递 ?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果在同一进程内消息传递,把CString 对象转换为 char * 指针传递估计可以。 没办法直接传递一个Csting 的对象吗? CString是不能直接当作消息的参数传递。另外转成char*后可以传递,因为SendMessage和PostMessage里的参数类型是指针类型的。但是还得考虑传递这两个参数指针所指向对象的生命周期,比如你声明了一个局部变量,然后把它的指针作为PostMessage的参数发出去了,这样那边接收到并处理后就会出错,因为这时你的这个变量已经不存在了,这个指针已经是一个野指针了。如果是用SendMessage的还可以,因为它是阻塞的,只有等待消息处理函数处理完后再返回。 3楼 和 5楼说的没错,要考虑变量作用域问题,最好定义成类成员数据或全局数据,保证在操作过程中不出现对象被销毁的情况,否则会出现 5楼 所述问题。如果在同一个进程中,感觉还是自己动态分配内存,传递指针,之后在接收端还原回CString。 取指针就可以了。前提是注意Cstring的生命周期。 SendMessage(hwnd, WM_XXX, NULL, (LPARAM)(LPCTSTR)str);SendMessage不用考虑生命周期的问题,但有可能引起阻塞,用PostMessage不会引起阻塞,但要注意生命周期 VC编写用户界面 请教exe和dll的栈和堆的关系 如何用DAO创建一个带密码的access(*.mdb)数据库文件 关于控件事件问题 在动态创建编辑框时如何使其有下沉的效果? com 知识? 求助,欲编写PhotoShop插件,求相关资料和源代码 问两个关于installshield6.0使用的话题?悬赏50分!!! 哪位大虾知道QQ2013版登录框上的动画效果是怎么实现的 昨天偶然用了一下 Visual Studio Express 2013,就石化了 在另一个文件想用cmydialog中的clistctrl变量 数据库文件如何在用户电脑上使用
另外转成char*后可以传递,因为SendMessage和PostMessage里的参数类型是指针类型的。但是还得考虑传递这两个参数指针所指向对象的生命周期,比如你声明了一个局部变量,然后把它的指针作为PostMessage的参数发出去了,这样那边接收到并处理后就会出错,因为这时你的这个变量已经不存在了,这个指针已经是一个野指针了。如果是用SendMessage的还可以,因为它是阻塞的,只有等待消息处理函数处理完后再返回。
如果在同一个进程中,感觉还是自己动态分配内存,传递指针,之后在接收端还原回CString。