C++Builder WM_COPYDATA消息传递结构体, 无法实现.

Javpp 2009-12-27 11:22:56
结构体
struct myStruct
{
UnicodeString name,
int value
};
发送消息:
.h
myStruct myData;

.cpp
myData.name = L"name";
myData.value = 100;
tagCOPYDATASTRUCT cds;
cds.cbData = sizeof(myStruct);
cds.lpData = &myData;
SendMessage(Handle, WM_COPYDATA, NULL, (LPARAM)&cds)

接收代码:
.h
消息映射, 不写了

.cpp
void OnCopyData(TMessage &Message)
{
myStruct myData = *((userData *)Message.CopyDataStruct->lpData);
}

但这样结构体中int类型的值就可以显示出来, 但UnicodeString类型的变量就不行...

咋回事呀?
...全文
356 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
TripH0101 2009-12-29
  • 打赏
  • 举报
回复
学习
ccrun.com 2009-12-28
  • 打赏
  • 举报
回复
你的结构中用到UnicodeString对象做成员,结构中存储的只是UnicodeString变量的地址,而其中存储的字符串数据,和这个地址有一定的偏移。当这个结构发送给另一个进程以后,对方只接收到了这个变量的相对地址和int变量的值,在另一个进程中读取这个地址的偏移,有可能是乱码,也有可能引发AV。所以,要用原始的数据类型,如char数组或wchar_t数组来传递字符串。
Javpp 2009-12-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ccrun 的回复:]
将UnicodeString name用char Name[缓冲大小];来代替。
[/Quote]
什么原因?
ccrun.com 2009-12-28
  • 打赏
  • 举报
回复
将UnicodeString name用char Name[缓冲大小];来代替。
周药师 2009-12-28
  • 打赏
  • 举报
回复
学习
Javpp 2009-12-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ccrun 的回复:]
你的结构中用到UnicodeString对象做成员,结构中存储的只是UnicodeString变量的地址,而其中存储的字符串数据,和这个地址有一定的偏移。当这个结构发送给另一个进程以后,对方只接收到了这个变量的相对地址和int变量的值,在另一个进程中读取这个地址的偏移,有可能是乱码,也有可能引发AV。所以,要用原始的数据类型,如char数组或wchar_t数组来传递字符串。
[/Quote]

谢谢!
xsnbzj 2009-12-28
  • 打赏
  • 举报
回复
帮顶
内容概要:本文介绍了一个基于Python的无人机三维路径规划项目,采用差分进化算法(DE)在复杂三维环境中自动生成安全、高效的飞行路径。项目构建了包含起点、终点和多个长方体障碍物的三维空间模型,通过将路径编码为中间航点向量,利用差分进化进行全局优化。适应度函数综合考量路径长度、碰撞惩罚、安全距离、转弯代价、爬升能耗和高度约束,确保生成的路径在安全性、平滑性和可行性之间取得平衡。优化后还引入路径简化机制,删除冗余航点并检测直连安全性,以减少航点数量并提升可执行性。程序输出包括三维路径图、障碍物可视化、适应度收敛曲线及各项性能指标,支持后续扩展至真实地图、地形模型和动力学仿真。; 适合人群:具备Python编程基础,熟悉NumPy、matplotlib等库,从事无人机、智能优化、路径规划相关研究或开发的科研人员、研究生及工程师(工作年限1-3年或有相关项目经验者); 使用场景及目标:①解决城市、山区、工业区等复杂三维环境下的无人机避障路径规划问题;②学习差分进化算法在连续空间优化中的应用;③为低空物流、应急救援、巡检监测等实际场景提供算法原型与二次开发基础; 阅读建议:建议结合提供的完整代码与可视化结果进行实践,重点关注环境建模、适应度函数设计、差分进化实现与路径后处理逻辑,可通过调整参数(如种群规模、权重系数)观察优化效果变化,深入理解多目标权衡与算法调参策略。

13,871

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧