------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;
这是咋回事情???

解决方案 »

  1.   

    stdcall是Windows API的标准调用方式。如果不是作成dll被其他程序(特别是用其它工具,如VC开发的)调用,一般不用加。
      

  2.   

    我想问 在DLL中操作了 listview 的句柄 是不是 就有问题的呢?
    我现在做的DLL就是处理界面的好多控件,在退出主程序的时候,
    有报错~Invalid Opinter Operate ???
      

  3.   

    我想问 在DLL中操作了 listview 的句柄 是不是 就有问题的呢? 
    不会有问题的!