我自己用delphi写了一个dll,我想实现多线程调用要怎么做,dll中的函数参数将整个form和form中的listview传了 进去,其它都是线程全局变量和函数局部变量,单线程调用没有任何问题正常运行,多线程调用时就出访问错误,
我是用以下方法调用的
function login(form1:Tform;listview1:Tlistview;username,password:string):string;stdcall; external 'login.dll';
请问我要想多线程调用我写的dll有哪些方,请给点资料,或是调用例子,谢谢各位

解决方案 »

  1.   

    TForm和TListView不是线程安全的
      

  2.   

    TForm和TListView不是线程安全的,另外你的主程序和DLL是否都加了ShareMem.
      

  3.   

    问题解决感谢SQLDebug_Fan
    以下是问题所在:login过程中向dll全局结构变量中写数据了所以造成了访问错误,修改成局部变量了问题解决,但是出现了内存溢出错误,使用SQLDebug_Fan指点加入sharemem不再溢出所有问题解决,有同样问题的参考一下。结贴给分
      

  4.   

    问题补充:TForm和TListView不是线程安全,确实是这样,但是我做了控制,Tform只是读取一个参数的值,好像没发现问题,TListView不让线程同时访问同一行,暂时没发现问题