小弟在DLL里声明了个记录类型如下:type
Component = Record
PartNum : Pchar;
Ver : Pchar;
Des : Pchar;
SUPBy : Pchar;
FileName : Pchar;
Size : Int64;
Created : TDateTime;
Modified : TDateTime;
end;用该记录类型作为A函数的返回值给主程序,在主程序里也同样定义了一样的记录类型,可是在调用DLL里的A函数后,发现PartNum的值不对,后面出现乱码,我想应该是内存读写问题,但不知道该如何处理,请高手赐教!PS: A函数是用stdcall.
Component = Record
PartNum : Pchar;
Ver : Pchar;
Des : Pchar;
SUPBy : Pchar;
FileName : Pchar;
Size : Int64;
Created : TDateTime;
Modified : TDateTime;
end;用该记录类型作为A函数的返回值给主程序,在主程序里也同样定义了一样的记录类型,可是在调用DLL里的A函数后,发现PartNum的值不对,后面出现乱码,我想应该是内存读写问题,但不知道该如何处理,请高手赐教!PS: A函数是用stdcall.
在主程序里面申请好空间,然后传指针就可以了。
PComponent = ^Component;var
data:PComponent ;
begin
new(data);
再把data返回就是 。必须使用new 否则还是不对