String 类型属于自管理类型,而Dll的调用和C/C++相似,
如果Dll里的函数要用到String类型,建议改为PChar类型

function GetName(Name:Pchar):integer;stdcall;
begin
.
.
end;

解决方案 »

  1.   

    不要用string类型,
    建议采用 pchar 或 shortstring 类型。
      

  2.   

    casualrain(无心的雨)  
      如何传地址?
      

  3.   

    切中要害,不错的另外
    casualrain(无心的雨)  
      如何传地址?是不是C用的太多了
      

  4.   

    Delphi支持两种字符串类型
    一种是String类型,他本质上是一个类,属于VCL类库,他保存字符串的原理是
    该类有一个PChar成员的成员.
    另一种是PChar类型
    他本质上是字符串首字符的地址,和C语言的字符串基本类似
    以空字符为字符结束符.其实PChar的定义就是
    PChar=^Char对于string类型其字符串的地址应该是其保存字符串的PChar类型的成员变量的
    值(成员名称不记得了,可以查一查VCL的源代码)
    对于PChar类型,地址就是该PChar类型的值string类型的变量S
    字符串地址为S.XXX(XXX的具体名称不记得了)
    PChar类型的变量S
    地址就是S