String 类型属于自管理类型,而Dll的调用和C/C++相似,
如果Dll里的函数要用到String类型,建议改为PChar类型
如
function GetName(Name:Pchar):integer;stdcall;
begin
.
.
end;
如果Dll里的函数要用到String类型,建议改为PChar类型
如
function GetName(Name:Pchar):integer;stdcall;
begin
.
.
end;
建议采用 pchar 或 shortstring 类型。
如何传地址?
casualrain(无心的雨)
如何传地址?是不是C用的太多了
一种是String类型,他本质上是一个类,属于VCL类库,他保存字符串的原理是
该类有一个PChar成员的成员.
另一种是PChar类型
他本质上是字符串首字符的地址,和C语言的字符串基本类似
以空字符为字符结束符.其实PChar的定义就是
PChar=^Char对于string类型其字符串的地址应该是其保存字符串的PChar类型的成员变量的
值(成员名称不记得了,可以查一查VCL的源代码)
对于PChar类型,地址就是该PChar类型的值string类型的变量S
字符串地址为S.XXX(XXX的具体名称不记得了)
PChar类型的变量S
地址就是S