2013-05-28 50 views
1

有一個C++/cli項目,它是一個Windows應用程序。在調試模式下,我們沒有任何問題,但在將其發送到釋放模式後,此錯誤啓動。我搜索並找到了一些論壇的答案,但無法幫助我解決這個問題。「模塊」的類型初始值設定項引發異常

請幫我....

錯誤:

An unhandled exception of type 'System.TypeInitializationException' occurred in Unknown Module 

其他信息:類型初始爲 '模塊' 引發了異常。

+0

我認爲最好是在「模塊」初始化器周圍發佈一些代碼。 –

回答

0

運行應用程序的機器是否具有所有需要的dll?

我堅信,你缺少的本地目錄

5

在C++/CLI項目的一些互操作性展示中,<Module>類是特殊的(注意尖括號中)。它是一個隱藏的託管類,編譯器會將所有不是某個類的方法的函數都賦予一個安全的家。因爲CLR不支持像C++這樣的免費函數,所以是必需的。

<Module>的類型初始值是額外的特殊,它早在程序開始運行非常。這就是CRT開始的地方,代碼中的任何靜態對象都會被初始化。

因此,您的基本診斷是代碼中靜態對象的初始化失敗。這發生在啓動只發生在發佈版本是非常非常痛苦的。調試器不允許你單步執行這段代碼,當然,你在Release版本中沒有很好的調試信息。幸運的是,根本原因是沒有得到處理的C++或SEH異常。調試+例外,勾選投擲複選框。調試器將在引發異常時停止。

+1

''不僅僅是隱藏 - 它有非常特殊的處理。 –

相關問題