DLL返回自定义类型的错误.(50分)

  • 主题发起人 主题发起人 江湖路
  • 开始时间 开始时间

江湖路

Unregistered / Unconfirmed
GUEST, unregistred user!
那位仁兄帮帮忙吧 调用时总是出现"Invalid Pointer operation"错误.不知为何???
代码如下:
{+++++++++++++++++DLL部分++++++++++++++}
type{ TODO : 自定义返回数据类型 }
TXMLDataList = Record
List : array of Tstringlist;
FormatString : Widestring;
Count : Integer;
Error : Widestring;
ErrorIndex : integer;
end;


Function MakeString(Passport: widestring; ValueList: TStringlist):TXMLDataList ; stdcall;
var
NodeList : TXMLDataList;
begin

NodeList.FormatString:=ValueList.Strings[0];
Result:=NodeList;

end;

{++++++++++++++++实现部分++++++++++++++++++}
Function Make_FormatString(TableName,Passport: widestring; ValueList: TStringlist):TXMLDataList ; stdcall;
external 'XML.dll';

procedure TForm1.Button3Click(Sender: TObject);
var
i : TXMLDataList;
begin

i:=MakeString('',Tstringlist(ListBox1.items));

end;
 
DLL部分、实现部分都有错误。

http://www.delphibbs.com/delphibbs/dispq.asp?lid=2224935
 
Function Make_FormatString(TableName,Passport: widestring; ValueList: TStringlist):TXMLDataList ; stdcall;
external 'XML.dll';
在主程序中的这段声明和定义在dll中的根本不一样

将dll中的那段声明贴到主程中去
在dll和项目文件的第一个uses处加上sharemem

那个记录型的定义简单让人莫名其妙,错倒是不错

 
多人接受答案了。
 

Similar threads

后退
顶部