用delphi寫標準DLL

1.不可以在DLL裏面分配字符串空間給調用函數,字符串空間必須在外部分配。
2.不可以將字符串作爲返回值,你看見那個WIN API有字符串返回值了。
3.一般都要傳遞給函數PCHAR的空間長度,避免字符串空間不足。

常見寫法

fun xxx(ps: pchar; ilen: integer): integer
var
  s: string;
begin
  s := 'abc';
  result :=  length(s);
  if ilen = 0 then
    exit;
  if result > ilen then
    result :=  ilen ;
  CopyMemory(ps, PChar(s), result);
end;

var
  ss: string;
  i: integer;
begin
  i := xxx(PChar(ss), 0);
  SetLength(ss, i);
  i := xxx(pChar(ss), i);
end;

發佈了29 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章