DLL 中给 Form的ListView写值 输出函数不写 stdcall 就报错~为什么?该怎么处理

DLL 中给 Form的ListView写值 输出函数不写 stdcall 就报错~为什么??
------DLL---------
library TestDLL;

uses
  ShareMem,
  SysUtils,ComCtrls,
  Classes;
procedure Filllistview(lv:TListView);stdcall;//这里不写stdcall程序就报错!!!
var lt : TListItem;
begin
  if not Assigned(lv) then exit;
  lt := lv.Items.Add;
  lt.Caption := 'tests';
  lt.SubItems.Add('ABCDEFG');
end;
{$R *.res}
  exports
  Filllistview;
begin
end.
----------------------
而Form里直接写就没错!
procedure TForm1.Button11Click(Sender: TObject);
var lt : TListItem;
begin
  lt := ListView1.Items.Add;
  lt.Caption := 'tests';
  lt.SubItems.Add('ABCDEFG');
end;
这是咋回事情???

------解决方案--------------------
stdcall是Windows API的标准调用方式。如果不是作成dll被其他程序(特别是用其它工具,如VC开发的)调用,一般不用加。
------解决方案--------------------
我想问 在DLL中操作了 listview 的句柄 是不是 就有问题的呢? 


不会有问题的!