Vas*_*nko 3 c delphi struct record
任务:
用Delphi编写的应用程序接受record三个字段的结构(就Delphi而言).我可以使用SendMessage(Win32 API)函数发送此结构的指针.
所以一个问题是:
如何用Delphi在Delphi的内存中维护某些结构表示?
它有类型
PWPModPostData = ^ TWPModPostData;
TWPModPostData = record
DataType: Integer;
Data: PChar;
Next: PWPModPostData;
end;
Run Code Online (Sandbox Code Playgroud)
如何在C中定义它?我的意思是,Delphi结构中是否有隐藏或服务字段?
不,没有隐藏字段,Delphi记录和C结构可以1:1相互映射,但有一些注意事项:
不要使用C不理解的任何数据类型.这包括对象,动态数组和Delphi字符串.
C和Delphi有时对字节对齐字段有不同的看法.测试您的记录并验证它们是否在C端工作.如果他们不这样做,请尝试使用打包记录 而不是记录.
将指针从C传递到Delphi或反之亦然时,请确保接收它的一方不会尝试释放或重新分配内存.它属于创建它的内存管理器.