异常错误码是在delphi程序里调试的时候捕获,还是编译好时,在别的电脑上有错误,系统自动提示的代码?我的程序在缺少一个dll文件的电脑上运行时,会弹出一个错误提示框,说“错误,*****00058FA1",是个是错误码吗?我是否可以在程序中写
if error="00058FA1" then
******
这样处理呢?如果不是,应该怎么捕获错误码,并处理,是在delphi里面?

解决方案 »

  1.   

    你以前用过delphi没有啊?F1查下帮助啦!
    try
    catch
    end;
      

  2.   

    是try
    except
    end;
    本人同是用delphi和C++,经常搞错
      

  3.   

    俺是ASP,不清楚,能否给段代码,说清楚点,放在哪个地方,点哪个按钮捕获
      

  4.   

    try
    except
    on e:exception do
      showmessage(e.message)
    end;
      

  5.   

    谢谢楼上的两位,但是还没完全明白异常处理放在代码的什么位置?
    比如我缺少一个123.dll会产生错误,应该怎么写?
      

  6.   

    情况是这样的,缺少123.dll的电脑上运行时,我在打开程序时,就会弹出错误框,这时我需要showmessage()
      

  7.   

    5楼的说的对,try
    except
    on e:exception do
      showmessage(e.message)
    end;这样会报你要的错误
      

  8.   

    同意用这种
    try
    except
    on e:exception do
      showmessage(e.message)
    end;
      

  9.   

    try
    *******************   (这一行应该怎么写能查出来C盘里有没有123.dll文件)
    except
    on e:exception do
      showmessage(e.message)
    end;
      

  10.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    try
    Loadlibrary('c:\windows\system32\omom.dll');
    except
    on e:exception do
      showmessage(e.message);
    end;
    end;我这样定了,不管目录下有没有这个dll都不报错,请问怎么回事??
      

  11.   

    if Loadlibrary('c:\windows\system32\omom.dll') > 0 then
      showmessage('调用成功')
    else
      showmessage('调用失败')
      

  12.   

    访问内存冲突这种情况太多了,根据你讲的内容, 我觉得你肯定是采用了静态载入DLL的方法实现程序的,这样这不好,应该要用动态载入DLL的方法,程序才不会因为你没有它一个DLL就不能运行 了,
    下面给你一个动态载入DLL的方法
    type   
      TGetNextMonth = function(const AMonth: string; Next: boolean): PChar; stdcall;
    end
    var
      dllHandle: THandle;
      dllGetNextMonth: TGetNextMonth;
     const
      GimiDLL = 'GimiDLL.dll';
     resourcestring
      sDllNotExists = '找不到动态链接库文件《%s》';
      function GetNextMonth(AMonth: string; IsNext: boolean): PChar;
    begin
      dllHandle := LoadLibrary(PChar(DateDLL));
      if dllHandle <= 0 then
        raise exception.Create(Format(sDllNotExists, [DateDLL]));
      @dllGetNextMonth := GetProcAddress(dllHandle, 'GetNextMonth');
      Result := dllGetNextMonth(AMonth, IsNext);
    end;
      

  13.   

    补充楼上的意见1
    try
      //execute code
    except
       on e:exception do
        showmessage('错误类;'+e.class+'错误消息:'+e.message);
    end;
      

  14.   

    谢谢,我明白大家的意思,我的程序主要就是要用这个dll,没有这个,没有其它功能可用了,我想知道的就是软件启动时,如果检测出是否有这个dll,并报错,而我下面这个异错处理不起做用:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    try
    Loadlibrary('c:\windows\system32\omom.dll');
    except
    on e:exception do
      showmessage(e.message);
    end;
    end;
      

  15.   

    var
      DLLHandle:Thandle;
      func:TFunc;
    begin
       result:='';
            DLLHandle:=LoadLibrary(pchar(ExtractFilepath(application.EXEName)+'DLL\PSD.DLL'));
          try
            if DLLHandle<>0 then
            begin
               func:=GetProcAddRess(DLLHandle,'CreateFm_Login');
               if Func(S_Open,pchar(username),pchar(Password),application.Handle) then
               //execute code;
            end
            else messagedlg('未发现DLL',mterror,[MBok],0);
          finally
            FreeLibrary(DLLHandle);
          end;
    end;
      

  16.   

    if Loadlibrary('c:\windows\system32\omom.dll') > 0 then
      showmessage('调用成功')
    else
      showmessage('调用失败')