调试帮助:包装的c ++ DLL在一个应用程序中运行正常,崩溃另一个应用程序

时间:2014-02-21 08:13:42

标签: c# c++ debugging dll unmanaged

我正在将一些C#演示代码从命令窗口应用程序迁移到WPF应用程序。演示代码正在访问包装的非托管C ++库。该库由第三方提供,因此我无权访问该代码。

虽然演示代码运行正常,但一段时间后,我的WPF应用程序中完全相同的代码崩溃了。访问该库,加载了一些配置文件但是当我调用某个方法时,我的应用程序抛出了一个错误(我必须启用“Unmanaged Code Debuggin”才能看到它):

First-chance exception at 0x7726c41f in Application.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x279ce1b4..
SCAPE exception caught: bad allocation

这是引发错误的部分:

unsafe
{
    fixed (S_DATA* pim = &_im)
    {
        bool success = false;
        try
        {
             success = RunAnalytics(_im); // <--- returns false, error message in debugger
        }
        catch (Exception ex)
        {
            throw new ScrException("ERROR: Unmanaged exception", ex);
        }
    }
}

两个应用程序都在“.NET Framework 4.0 Client Profile”上运行。

任何提示如何从这里开始?我没有想法......

修改 我花了最后几天设置不同的场景试图弄清楚,问题的根源是什么。

  • 原始解决方案中的原始WPF&gt;
  • 虚拟解决方案中的原始WPF&gt;作品
  • 原始解决方案中的虚拟CMD&gt;作品
  • 虚拟溶液中的虚拟CMD&gt;作品
  • 虚拟解决方案中的最小WPF&gt;作品
  • 原始解决方案中的最小WPF&gt;原理

我真的不是更聪明......

编辑2:经过很长一段时间我发现它 - 一个构建后的脚本干扰了一些彼此重复复制的本地资源,因此我使用的是过时的配置带有一些新设置的文件...不是一个非常令人满意的解决方案。

0 个答案:

没有答案