c++ - C++ 指针数组移植到 Delphi
问题描述
我在移植到 Delphi 的 C++ 代码中有以下场景。
结构体定义如下:
typedef struct tagMyType
{
LPVOID pData; // allocated by the client
} MyType, FAR* LPMyType;
我将此结构传递给一个外部 DLL,该 DLL 在其中填充数据。根据我的文档,它说明了以下内容:
pData 将指向一个空终止字符串的打包列表
我在Delphi中声明的记录如下:
TMyType = record
pData: POINTER;
end;
PMyType = ^TMyType;
内存分配和 DLL 调用成功,pData 被填充。
然后,C++ 代码将此字段视为一个数组,这是我在 Delphi 中无法根据 pData 声明的事情。
for ( i = 0; i < 10; i++ )
printf( "%d", ((ULONG*)stEnum.pData)[i] );
我知道 C++ 可以将指针作为数组处理,我想知道如何在 Delphi 中轻松地做同样的事情。
解决方案
推荐阅读
- websocket - 尝试通过 Visual Studio 运行 websocket 应用程序,以便我可以调试它
- python - 了解 GPU 上的 Pytorch 内存分配
- java - 如果简单数组有效,为什么要在 OpenGL (LWJGL) 中使用缓冲区?
- vue.js - NuxtJS Headless ghost 无法查看个别博客
- python - 如何使用 lasio.py 将曲线标题添加到 las.write() 的输出
- karabiner - 如何交换破折号和下划线(karabiner)
- c# - C# 有没有办法在触发计时器时“重新启动”线程?
- javascript - 在 foreach 循环内将数据推送到 firebase 数据库的问题
- javascript - 将 Firestore 数据同步到 Google 表格
- javascript - JavaScript:读取文件后尝试返回字符串时未定义类型