如果我的程序中用到的DLL不存在,程序就无法运行了,请问有没有办法使程序仍然可以运行,到报告DLL无法找到这样的错误呢?谢谢!

解决方案 »

  1.   

    估计是没有办法,程序启动的时候就要去加载dll的,如果没有,程序应该没有办法运行的。
      

  2.   

    DLL的引用分为静态和动态
    你可以用动态装载的方法调用API函数 myhandle:thandle;
      myhandle :=loadlibrary('mydll');
    加载失败则引发异常
    try
      if myhandle<0 then
        raise exception.create('动态链接库调用失败,错误代码是:'+inttostr(getlasterror))
    finally
      FreeLibrary(myhandle);
    end;-------------------------------------------------
    在错的时间遇见错的人 是一种伤痛 
    在错的时间遇见对的人 是一种遗憾 
    在对的时间遇见错的人 是一种心伤 
    只有在对的时间遇见对的人才是一种幸福
      

  3.   

    我在程序中用到了DLL中的函数,如果做成像上面这位朋友说的那样,我程序编译通不过.
      

  4.   

    对啊,使用动态调用
    var 
      HD:THandle;
    begin
       HD:=loadlibrary('*.dll');
    try
      if HD<0 then
            //..............Add you code    
    finally
      FreeLibrary(HD);
    end;
      

  5.   

    使用动态调用
     myhandle:thandle;
    try
      myhandle :=loadlibrary('mydll');
      if myhandle<>0 then
         做你的事情,=0的话表示加载失败
    finally
      FreeLibrary(myhandle);
    end;