2010-07-30 173 views
1

我正在为本机C++应用程序编写一个C++/cli包装,当我完成编写代码时,它的构建得很好。我编写了一个c#控制台应用程序来测试这个包装器。我的C++/cli包装器中引用了它,然后我编写了一个c#控制台应用程序来测试这个包装器。但是,调试器可以启动。如果我评论了包装器中的代码行,它运行良好。C++ msvcp90d.dll访问冲突异常

因此,当调试器无法启动时,我发现有一个未处理的异常出现在Visual Studio的输出窗口中:msvcp90d.dll发生了无例外的异常,访问冲突错误写入位置:0ff ......

任何人都可以列出一些常见的senarios可能会导致此问题?非常感谢任何答案。

回答

0

我会退后一步,注释掉静态库中的C++代码,并简单地从它返回。并检查整合是否有效。

你可以检查C++代码生成选项吗?尝试改为多线程运行时库。

+0

感谢您的答案,我只是不能访问静态库中的代码。我已经将它改为“多线程”运行时库,它不起作用。 – jinge 2010-08-06 23:42:42

0

你可以检查运行时库吗? /MD应该工作。 您需要使用/ MD和/ MDd标志重新编译代码,或将您的代码更改为/ MT和/ MTd。