繁体   English   中英

如何找到引发EETypeLoadException的原因?

[英]How do I find the reason EETypeLoadException was thrown?

我有一个Windows 8.1 WinRT(现代/地铁)应用程序,该应用程序部分是本机C ++,部分是.net(C#)

在某些时候,C ++部分正在调用设置为C#方法的委托,当此委托被称为EETypeLoderException且未调用该方法时,我想找出导致此失败的原因。

委托指向的方法在已经加载的.net程序集中,该程序集中的代码以及具有所谓方法的同一类已经运行(并且可能正在该线程的另一个线程中运行)。引发异常的时间)

EETypeLoadException是本机非托管异常,它是由非托管代码(在msvcr120_clr0400.dll中)引发的,我只能使用非托管调试器进行查看,并且该调试器无法向我显示该异常的数据,因为它不知道关于EETypeLoadException类。

我无法捕获异常并在代码中从中提取数据,因为我没有该异常或其任何超类的头文件。

融合日志查看器(FUSLOGVW)没有显示任何有用的信息,没有绑定错误,成功的绑定看起来并不相关。

Procmon没有显示任何尝试访问丢失的dll

使代码在UI线程或后台任务上运行不会改变任何内容。

我什至尝试查看异常对象的内存转储,并跟随任何看起来像指针的内容,找不到错误消息。

这在本地计算机和模拟器中都发生

我在Windows 8.1机器上使用Visual Studio 2013 Update 3

看起来WinRT中的本机代码(即不是.net CLR)抛出的EETypeLoadException没有携带任何其他信息,并且无法获得有关确切失败原因的信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM