我有一個過程來調用一個名爲函數[主()]從一個DLL,這是主叫過程:在Delphi中調用DLL時的異常?
procedure call_dll(path:string);
var
lib: HMODULE;
mainfn: procedure(); stdcall;
begin
if FileExists(path) then
begin
try
lib := LoadLibrary(PAnsiChar(path));
Win32Check(lib <> 0);
try
@mainfn := GetProcAddress(lib, 'main');
Win32Check(Assigned(mainfn));
mainfn();
finally
FreeLibrary(lib);
end;
except
end;
end;
end;
直到但每一件事情是工作的罰款,我的意思寫的正確路徑後DLL的一切工作沒有問題,但如果我在路徑參數中寫了一個錯誤的路徑(其他文件路徑),它顯示彈出錯誤,這不是一個Win32 DLL,但我不想打擾用戶這種類型錯誤,所以我需要一個函數來檢查DLL,如果它不是,那麼它會自動再次請求另一個文件,而不顯示彈出錯誤?
對不起,先生但心中已經由'showmessage();'每一行和錯誤是由'LIB後引起:=調用LoadLibrary(PAnsiChar (path));'不是'Win32Check'那麼該怎麼辦? –
做我最後的段落說的。調用SetErrorMode來禁用這些對話框。你的代碼在處理錯誤的方式上是一團糟。我認爲你從某處複製代碼而不理解它。 –
hhhhhhhh這是真的我是一個初學者,但有一天,我將能夠寫我自己的功能;),無論如何,我會嘗試你說什麼:)只是一秒 –