dll单元
uses
SysUtils,
Classes;
function x(s:string):TString;stdcall;
implementation
{$R *.res}
function x(s:string):TString;
var
TS:TStrings;
begin
TS:=TStringList.create;
TS.add(s);
Result:=TS;
FreeAndNil(TS);
end;
exports
x;
begin
end.
这样返回能取到值,但是在FreeLibrary的时候存在内存方问错误的问题
最后使用OleVariant传递。在Dll内部首先用Variant保存所有要传递的记录,然后转化为OleVariant
————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
你最好不要用这个类
这个类中有虚方法
而且跨DLL不能使用含string类型的数据类
解决的方法有
不必用VARIANT
你传送PCHAR指针
然后再转成string使用就行strpas