使用 32 位 COM 组件编译代码并在 64 位系统上使用时出现 System.OutOfMemoryException
我的代码在 32 位系统上运行良好。我只是引用一个读取/写入 xml 的 COM 组件。因此,当我收到以下错误时,我尝试在“X86”中编译,然后在 64 位系统上运行。
发生以下异常:System.OutOfMemoryException:由于以下错误,从 IClassFactory 创建 CLSID 为 {59D5FDED-B01B-47F4-BBBC-56941A2F4873} 的 COM 组件实例失败:8007000e。
My code works fine on a 32 bit system. I am simply referencing a COM component that reads/writes xml. So, I tried compiling in 'X86' and then running on a 64 bit system when I received the error below.
The following exception occurred: System.OutOfMemoryException: Creating an instance of the COM component with CLSID {59D5FDED-B01B-47F4-BBBC-56941A2F4873} from the IClassFactory failed due to the following error: 8007000e.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
随机建议:
注意:如果您的 COM 组件使用 MSXML 来处理 XML,则由于内存管理之间的不兼容,不支持将其加载到托管应用程序中。它不太可能导致您所看到的问题,但更多的是供一般参考。
Random suggestions:
Note: if your COM component uses MSXML to work with XML loading it into managed application is not supported due to incomaptibilities between memory management. It is unlikely to be cause problem you are seeing, but more for general reference.
对我来说,发生这种情况是因为 C++ COM 组件正在调用 C# 库并且不处理它引发的异常。
For me this was happening because the C++ COM Component was calling a C# library and not handling the exception it raised.