首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
VC/MFC
基础类
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
如何将cstring的对象作为sendmessage 的一个参数传递 ?谢谢
[已结贴,结贴人:yanglin1228]
加为好友
发送私信
在线聊天
yanglin1228
香山红叶
等级:
可用分等级:
贫农
总技术专家分:
0
总技术专家分排名:
311804
揭帖率:
62.26%
发表于:
2008-08-22 10:32:02
楼主
如何将cstring的对象作为sendmessage 的一个参数传递 ?谢谢
问题点数:
20
回复次数:
10
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
yyunffu
等级:
可用分等级:
富农
总技术专家分:
1846
总技术专家分排名:
15071
发表于:
2008-08-22 10:34:41
1
楼 得分:
2
如果在同一进程内消息传递,把CString 对象转换为 char * 指针传递估计可以。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
yanglin1228
香山红叶
等级:
可用分等级:
贫农
总技术专家分:
0
总技术专家分排名:
311804
发表于:
2008-08-22 10:50:06
2
楼 得分:
0
没办法直接传递一个Csting 的对象吗?
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
Mackz
在相互
等级:
可用分等级:
掌柜
总技术专家分:
125108
总技术专家分排名:
32
4
6
7
发表于:
2008-08-22 15:07:29
3
楼 得分:
2
对象可以传指针,但是要保证其作用域。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
dux003
rare
等级:
可用分等级:
贫农
总技术专家分:
225
总技术专家分排名:
62079
发表于:
2008-08-22 15:19:04
4
楼 得分:
2
引用 3 楼 Mackz 的回复:
对象可以传指针,但是要保证其作用域。
Right!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
xsc2001
相生昌
等级:
可用分等级:
掌柜
总技术专家分:
2270
总技术专家分排名:
9796
发表于:
2008-08-22 16:02:11
5
楼 得分:
6
CString是不能直接当作消息的参数传递。
另外转成char*后可以传递,因为SendMessage和PostMessage里的参数类型是指针类型的。但是还得考虑传递这两个参数指针所指向对象的生命周期,比如你声明了一个局部变量,然后把它的指针作为PostMessage的参数发出去了,这样那边接收到并处理后就会出错,因为这时你的这个变量已经不存在了,这个指针已经是一个野指针了。如果是用SendMessage的还可以,因为它是阻塞的,只有等待消息处理函数处理完后再返回。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
yyunffu
等级:
可用分等级:
富农
总技术专家分:
1846
总技术专家分排名:
15071
发表于:
2008-08-22 16:13:43
6
楼 得分:
3
3楼 和 5楼说的没错,要考虑变量作用域问题,最好定义成类成员数据或全局数据,保证在操作过程中不出现对象被销毁的情况,否则会出现 5楼 所述问题。
如果在同一个进程中,感觉还是自己动态分配内存,传递指针,之后在接收端还原回CString。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
cang0lang
批着狼皮的羊
等级:
可用分等级:
长工
总技术专家分:
299
总技术专家分排名:
52000
发表于:
2008-08-22 16:21:58
7
楼 得分:
1
5楼说的很详细
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
harry330
等级:
可用分等级:
富农
总技术专家分:
309
总技术专家分排名:
46318
发表于:
2008-08-22 21:07:26
8
楼 得分:
2
取指针就可以了。前提是注意Cstring的生命周期。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
greatws
研究DSing...
等级:
可用分等级:
富农
总技术专家分:
8849
总技术专家分排名:
2290
发表于:
2008-08-22 23:15:28
9
楼 得分:
2
SendMessage(hwnd, WM_XXX, NULL, (LPARAM)(LPCTSTR)str);
SendMessage不用考虑生命周期的问题,但有可能引起阻塞,用PostMessage不会引起阻塞,但要注意生命周期
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
shanying_0
努力学习
等级:
可用分等级:
贫农
总技术专家分:
656
总技术专家分排名:
29121
发表于:
2008-08-23 08:59:30
10
楼 得分:
0
学习了~~~~
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友