'模块'的类型初始值设定项抛出一个例外

时间:2013-05-28 08:47:49

标签: c++ c++-cli

拥有 c ++ / cli 项目,它是 Windows应用程序。在调试模式下,我们没有任何问题,但在将其带到释放模式后,此错误启动。我搜索并找到了一些论坛答案,但无法帮助我解决这个问题。

请帮助我....

错误:

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

其他信息:“模块”的初始化程序类型引发了异常。

3 个答案:

答案 0 :(得分:5)

在C ++ / CLI项目中,<Module>类是特殊的(请注意尖括号)。它是一个隐藏的托管类,编译器生成它来为所有不是类方法的函数提供安全的家。必需,因为CLR不支持像C ++那样的免费函数。

<Module>的类型初始化程序非常特殊,它在程序开始时提前运行 very 。这就是CRT启动的地方,代码中的任何静态对象都会被初始化。

因此,您的基本诊断是代码中静态对象的初始化失败。这种情况发生在启动只发生在Release版本中非常非常痛苦。调试器不允许您单步执行此代码,当然,您在Release版本中没有良好的调试信息。幸运的是,根本原因是没有得到处理的C ++或SEH异常。 Debug + Exceptions,勾选Thrown复选框。抛出异常时调试器将停止。

答案 1 :(得分:0)

运行应用程序的机器是否具有所有必需的dll ??

我坚信您缺少本地目录中的一些互操作

答案 2 :(得分:0)

我遇到了同样的问题,并在安装Visual Studio 2015 Redistributable x64 x86 后得到了解决。

安装VS C ++ 2015可再发行组件(x64x86

确保同时安装了x64和x86版本。

希望这可以解决问题。