如何将char **转换为delphi?

时间:2018-02-24 08:02:35

标签: delphi

我认为char **意味着ppansiChar,但我不知道如何使用它以及目的。我有这个功能

char **MagickGetImageProfiles(MagickWand *,const char *,size_t *), 

我这样翻译:

function MagickGetImageProfiles(wand: PMagickWand; const pattern: pAnsiChar; const number_profiles: pSize_t): ppAnsiChar;

它的工作,但是我不知道现在该怎么做结果为ppansiChar :(为什么不简单的pansiChar?所以也许我错了将它用作ppansichar?通常MagickGetImageProfiles必须返回一个数组或者像这样的想法因为在number_profiles中,它返回返回的配置文件数

1 个答案:

答案 0 :(得分:4)

它是指向字符串数组的指针。我个人宣布这样的功能:

android:drawableRight="@drawable/arrow_down_float"

这样称呼:

function MagickGetImageProfiles(
    wand: PMagickWand; 
    pattern: pAnsiChar; 
    out number_profiles: size_t
): ppAnsiChar; cdecl;

您可以同样设置var i: Integer; number_profiles: size_t; profiles, p: ppAnsiChar; ... profiles := MagickGetImageProfiles(wand, pattern, number_profiles); // error checking goes here, as described by API documentation p := profiles; for i := 0 to number_profiles-1 do begin Writeln(p^); Inc(p); end; MagickRelinquishMemory(profiles); 并将其写为:

{$POINTERMATH ON}