【发布时间】:2013-12-18 21:57:13
【问题描述】:
我正在尝试在我的 C++ 程序 (Visual Studio 2008) 中使用用 Delphi 编写的 DLL。 在 DLL 文档中函数声明为:
function ReadInfo(pRetBuffer: Pointer) : boolean;
where pRetBuffer - 指向返回结果的“字符串数组”类型变量的指针。 我应该如何在 C++ 中声明这个参数(字符串数组)?
在 DLL 的文档中,我有一个如何在 Delphi 中使用此函数的示例:
function ReadInfo(pRetBuffer: Pointer): boolean; stdcall; external 'SOME.dll'
var
RetBuffer: array of string;
.
.
.
procedure Test();
var
Result: Boolean;
begin
.
.
.
Result := ReadInfo(@RetBuffer);
.
.
.
end;
【问题讨论】:
-
从技术上讲,直译为
std::string (*)[N](其中 N 是字符串的数量)。这是一个指向N字符串数组的指针。但是,我怀疑这样做是个好主意。通常,您希望使用 stdlib 容器,例如std::vector<std::string>。