有1000个dll,每个dll大小500k到5000k不等,每个dll是一道题目,
现在只做loadlibrary和freelibrary操作,大概调用到300个以上时就会出错,继续调用剩下的dll,90%都是失败的。全部调用完成后,如果重新去调用这些dll,就直接开始出错了,如果退出程序再重新打开程序的话,又会在300左右开始出错,

解决方案 »

  1.   

    大概调用到300个以上时就会出错怎么出错?异常? 把异常信息发上来,如果没有异常,只是LoadLibrary返回0的话,这样显示错误信息
    hDll := LoadLibrary(...);
    if hDll=0 then begin
      ShowMessage(SysErrorMessage(GetLastError()));
      exit;
    end;
    然后把错误信息发上来,我猜测是路径问题,
      

  2.   


    不是路径的问题,dll都是放在一起的
      

  3.   

    用你那方法试了下,显示:动态链接库 (DLL) 初始化例程失败
      

  4.   

    会不会始终是这个DLL出错?
    把这个DLL放在第一个加载看看
      

  5.   

    不是特定一个dll会出错,感觉加载到一定个数就会出错,还会弹出“存储空间不足“,抛出太多异常
      

  6.   


    是dll里的问题么?
      

  7.   

    内存爆了,加载这么多DLL,看看内存占用是不是接近2GB了。
      

  8.   

    我是load一个,马上free一个的,这样子会出错,内存占用也就20m不到;
    如果只是load的话,不会报错,但内存就会增加到快有2G