用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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章