我正在寫一個Windows 32位程序,可以使用多個可能的DLL中的一個。所以它會嘗試加載每個dll,使用SysUtils.SafeLoadLibrary
,如果加載成功,它會使用該dll。有沒有什麼辦法來捕獲錯誤,如果加載DLL無法找到依賴關係?
不幸的是其中一些dll與其他dll靜態鏈接。這些dll可能從計算機中丟失。在這種情況下,我得到的對話框,告訴我
[myprogram]:[myprogram.exe]系統錯誤
程序無法啓動,因爲[一些DLL名稱]從您的計算機中缺少。嘗試重新安裝程序來解決這個問題。」
按該對話框中的OK按鈕後,程序會取得錯誤代碼,並試圖在其他DLL,然後正常工作之一。
而不是顯示?該對話框我想我的程序靜靜地忽略它的用戶
我如何能夠做到這
如果它的事項:我的程序是用Delphi編寫的2007年Windows版本是Windows 8.1,但程序還應該與其他Windows版本> =一起使用Windows XP。我試過SetErrorMode(SEM_FAILCRITICALERRORS)
但它沒有任何區別。
請參閱[此問題](https://stackoverflow.com/q/44430822/1889329)。 – IInspectable
@IInspectable謝謝,但沒有答案只有一個評論。如果我正確理解該評論,我將不得不修改這些DLL才能完成這一點,這是我不能做到的。 – dummzeuch
從你的問題中不清楚你是否控制你試圖加載的DLL。 – IInspectable