在Windows7/WinServer2008中实例化时出现COM运行时异常



您可能对此页面有一些建议:http://www.echelon.com/support/kb/solution.asp?solutionID=668

这一页几乎准确地描述了我的处境。然而,那里的指南并不合适。

  1. 正如我所看到的,DEP无法在W7/WS2008中关闭。

  2. 编辑bin的路径(以及使用的方式)似乎在VS2010中被重写了

  3. 有传言说NXCOMPAT已经没有效果了?

一个小问题描述,
一个大约2000年的旧DLL文件(可能是C++,但也可以是VB6)。它是一个互操作COM DLL,已经在我们的旧(VB6)环境中使用了几年。DLL通过"选择工具箱项/COM组件"附加在VS中。然后将dll作为引用添加到项目中。我将声明此代码从控制台应用程序运行(以避免任何与IIS相关的错误)。

当代码试图加载对象的实例时,会显示错误。

Creating an instance of the COM component with CLSID {104B7F00-06EE-11CF-9AE0-0020AFD34749} from the IClassFactory failed due to the following error: 80040023.

你有什么想法?您是如何解决COM问题的(在Windows 7/Vista/Win Srv 2008中)?

提示:
-检查运行库模块
-使用Depends查找丢失的模块
-使用此链接中的提示来互操作32/64位

1)我似乎不明白"正如我所看到的,DEP无法在W7/WS2008中关闭。"是的,你可以在Win7中禁用DEP。请参见此处:http://www.fanhow.com/knowhow:Enable_or_Disable_DEP_in_Windows_7_270197372) editbin存在于VS2010中(根据您的安装驱动器更改此路径):C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\bin\editbin.exe。打开Visual Studio命令提示符,您应该在不知道其路径的情况下使用它。3) 我不认为是这样。否则,此开关将被弃用。MSDN文档似乎并不这么建议:http://msdn.microsoft.com/en-us/library/ms235442(v=vs.100).aspx

GUID和错误消息都表明您正在处理一个专有组件。因此,除了你在问题报告中提到的文档之外,其他文档在这里没有帮助。因此,另一个想法是将WinDbg连接到进程,并查看异常的真正来源。然而,如果没有专有组件的符号/来源,识别和修复问题似乎是一项不平凡的任务。

相关内容

最新更新