簡體   English   中英

如何將char **轉換為delphi?

[英]how to convert char ** to 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中它是返回返回的配置文件數

它是指向字符串數組的指針。 我個人將這樣聲明該函數:

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}並這樣寫:

var
  i: Integer;
  number_profiles: size_t;
  profiles: 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
  Writeln(profiles[i]);
MagickRelinquishMemory(profiles);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM