0xC0020001:字符串绑定无效。 – 仅在WPF中发生

首先,我可能会说我可能已经达到了这个级别的5级…我在WPF应用程序中使用C ++加载项。 每当我尝试退出程序时,都会收到此错误:

Raptor.exe中0x770d15de处的未处理exception:0xC0020001:字符串绑定无效。

我一直在使用这个博客条目试图解决问题,但我没有运气。 但有一点我注意到,当我在控制台应用程序中使用相同的C ++插件时,调用WPF应用程序中使用的许多相同方法,控制台退出时没有问题。

我也经历过C ++代码,无法在任何地方找到一个静态变量。 但是有静态方法。

任何帮助将非常感激!

编辑:我启用了许多调试function,以查看它中断的位置。 它打破了以下最后一个括号中的sp_counted_impl.hpp文件(Boost):

virtual void dispose() // nothrow { #if defined(BOOST_SP_ENABLE_DEBUG_HOOKS) boost::sp_scalar_destructor_hook( px_, sizeof(X), this ); #endif boost::checked_delete( px_ ); } 

某些DLL不与本机库链接,因此它们的DllMain不会初始化一些所需的本机子系统(如CRT或ATL)。 听起来你有某种混合模式的DLL。 建议的解决方案是从托管DLL中删除入口点:删除托管DLL的入口点

  1. 与/ NOENTRY联系。 在解决方案资源管理器中,右键单击项目节点,单击“属性”。 在“属性页”对话框中,单击“链接器”,单击“命令行”,然后将此开关添加到“其他选项”字段。
  2. 链接msvcrt.lib。 在“属性页”对话框中,单击“链接器”,单击“输入”,然后将msvcrt.lib添加到“其他依赖关系”属性。
  3. 删除nochkclr.obj。 在“输入”页面(与上一步骤相同的页面)中,从“附加依赖项”属性中删除nochkclr.obj。
  4. 在CRT中链接。 在“输入”页面(与上一步骤相同的页面)中,将__DllMainCRTStartup @ 12添加到“强制符号引用”属性中。

更多细节可以在这里找到: https : //support.microsoft.com/en-us/kb/814472