2012-08-14 19 views
1

enter image description here我在我的應用程序中使用了一個dll,其中包含該dll提供的功能。這個DLL我得到後安裝一個msi。 但在我的應用程序中,我有一個要求,如果用戶沒有安裝該msi,那麼我們必須顯示一個警告消息(例如,msi沒有安裝,代碼爲我已經在我的應用程序的main()中實現)退出應用程序。啓動應用程序時的Dll問題

但問題是,如果用戶沒有安裝msi,然後啓動應用程序本身顯示一個錯誤消息,因爲它無法得到dll,這次控制甚至沒有來到我的主要(),我在哪裏我已經編寫了用於此msi檢查的代碼(通過註冊表項)。

有沒有解決這個問題..

+0

所以你說你的'main()'沒有執行,當你沒有DLL?我們講的是main()而不是'DllMain()',對嗎? – 2012-08-14 07:46:16

+0

是的。我想要的是,即使DLL不存在,我已經寫在我的int main(){...}中的代碼應該被執行。但正如我上面提到的那樣,控制甚至沒有進入我的main(),因爲它在啓動應用程序時顯示了問題。 – Kenta 2012-08-14 08:02:10

回答

1

考慮任何有效的方式延遲加載DLL(項目 - >選項 - >高級鏈接)。

這將允許您的應用程序在DLL丟失時加載。

+0

但在這種情況下,我得到各自的.lib文件的致命錯誤..是否有任何其他方式來做到這一點? – Kenta 2012-08-14 08:50:37

+0

@vivek在這種情況下,確切的錯誤是什麼? .lib文件通常鏈接到可執行文件中,所以我不希望看到有關.lib文件的運行時錯誤。 – 2012-08-15 03:33:05

相關問題