【发布时间】:2018-04-06 07:59:28
【问题描述】:
我在这里使用Code,它是一个简单的代码,允许在带有 CLI 桥的 C++ 项目中使用托管 C# 类。我正在努力让它为我的测试工作。但我得到了这个例外:
在0x00007FFDAA264008(KernelBase.dll)在将Test.exe未处理异常:0xE0434352(参数:0xFFFFFFFF80131509,0x0000000000000000,0x0000000000000000,0x0000000000000000,0x00007FFD798F0000)。发生了
Test.exe 中的 0x00007FFDAA264008 (KernelBase.dll) 处引发异常:0xE0434352(参数:0xFFFFFFFF80131509、0x0000000000000000、0x0000000000000000、0x00000000000070000000000000000000000000000000000000000000000000000000000000000000000) 在 Test.exe 中的 0x00007FFDAA264008 (KernelBase.dll) 处引发异常:0xE0434352(参数:0xFFFFFFFF80131509、0x0000000000000000、0x0000000000000000、0x0000000000000700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000 00000 000000000千米)的异常。 在 Test.exe 中的 0x00007FFDAA264008 (KernelBase.dll) 处引发异常:0xE0434352(参数:0xFFFFFFFF80131509、0x0000000000000000、0x0000000000000000、0x0000000000000700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000 00000 000000000千米)的异常。 在 Test.exe 中的 0x00007FFDAA264008 (KernelBase.dll) 处引发异常:0xE0434352(参数:0xFFFFFFFF80131509、0x0000000000000000、0x0000000000000000、0x0000000000000700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000 00000 000000000千米)的异常。 在 Test.exe 中的 0x00007FFDAA264008 (KernelBase.dll) 处引发异常:0xE0434352(参数:0xFFFFFFFF80131509、0x0000000000000000、0x0000000000000000、0x0000000000000700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000 00000 000000000千米)的异常。 Test.exe:0xE0434352中0x00007FFDAA264008(Kernelbase.dll)的未处异常
我为 test.exe 尝试了依赖 walker,除了缺少一些 API-MS-WIN-CORE* dll 之外,我找不到任何实际问题。它确实说一个模块由于缺少导出功能而有一个未解决的导入,但是我在哪里可以找到这个呢?它还说检测到 1 个循环依赖项,但未找到一个。
请指教。
【问题讨论】:
-
您的代码中有错误。使用调试器并单步执行问题区域是正确的工具/方法。
-
0xE0434352 是托管异常的异常代码,80131509 表示它是 InvalidOperationException。可能很简单,但是从本机代码中诊断此类异常确实非常困难。这确实需要您使用日志记录或使调用的代码能够生成合理的错误代码。通过调试此故障首先取得成功。项目>属性>调试>调试器类型=混合。并在使用 Debug > Windows > Exception Settings 引发异常时强制调试器停止,勾选 CLR 复选框。