【发布时间】:2015-11-29 18:24:11
【问题描述】:
我有一个基于 C 的 DLL,它导出一个以 char*** 作为参数的函数,这是一个指向 char 指针的指针(非 unicode)我的问题是,经过多次挫折,什么是Delphi端的等效声明?
我试过例如:
// C Method declaration
void method (char*** arg)
TArrayOfPAnsiChar = array of PAnsiChar;
PArrayOfPAnsiChar = ^TArrayOfPAnsiChar;
PPArrayOfPAnsiChar = ^PArrayOfPAnsiChar;
// Delphi declaration
procedure method (var p : PPArrayOfPAnsiChar); cdecl;
p : PPArrayOfAnsiChar;
method (p)
但我没有得到任何明智的回报。有什么建议?声明中的 var 当然已经是一个指针,所以也许这就是我出错的地方。我尝试了许多变体,在纸上写下结构是什么,并逆向设计了 Delphi 声明,但无济于事。此 DLL 用于其他基于 C 的应用程序,因此我假设它的功能正常。
使用 XE6
【问题讨论】:
-
这取决于
char***代表什么。这可能是不同的事情。你必须阅读文档才能知道。 -
没错,我应该更明确一点,在这种情况下 char*** 是一个指针,该指针指向一个数组,其中每个元素都指向一个字符串。但是给出的答案足以帮助我。
标签: delphi