2013-05-18 42 views
3

我發現,建議呼籲程序啓動時SetErrorMode(SEM_FAILCRITICALERRORS)
https://msdn.microsoft.com/en-us/library/windows/desktop/ms680621.aspx使用VCL啓動時設置SEM_FAILCRITICALERRORS是否安全?

我知道,VCL代碼暫時將這種模式在一些功能上。但是它不會在應用程序啓動時全局執行此操作。

由於我沒有看到的默認行爲的任何好處,我正在考慮我的代碼明確設置它。我只是想知道,如果VCL被設計爲以這種模式運行。有沒有人知道有任何潛在的問題?任何理由,爲什麼VCL本身不設置這種模式?

+6

如果'SetErrorMode(SEM_FAILCRITICALERRORS)'是比微軟所有的應用程序推薦行爲應該予以默認爲所有新工藝,而不需要應用程序開發人員顯式調用它,恕我直言。 –

回答

4

很VCL應用程序遵循啓動時的MSDN建議,並設置爲sem_ FAILCRITICALERRORS完美的罰款。

+0

我創建了兩個測試項目,一個是一個包,另一個是exe。我使用運行時軟件包瀏覽了exe的項目選項/包/構建,輸入了庫的名稱並構建了bpl,然後構建了exe。 然後我去了bpl的源代碼並刪除了其中的一個方法,重建了bpl,運行了exe,它打開了錯誤的對話框。然後在exe項目中,我查看了源代碼,並在Application Initialize方法調用之前編寫了'SetErrorMode(SEM_FAILCRITICALERRORS)'。它仍然顯示消息框。我應該在哪裏寫這個以手動處理錯誤? – nurettin

+0

你看到什麼信息框? –

+0

程序入口點@Libtest @ TLibTest @ TestMissingProcedure $ qqrv無法位於動態鏈接庫LoadedLibrary.bpl中。 – nurettin

相關問題