admin 管理员组

文章数量: 1087139


2024年5月17日发(作者:3x3魔方公式图解)

关于在Win7 SP1操作系统下编译的ADO应用程序不能在比Win7 SP1版本低的操作系

统上运行,微软给出的解释和解决方案

Posted on 2011-09-11 09:15 Mr-Victor 阅读(99) 评论(2) 编辑 收藏

本文解决方案摘自:/kb/2517589

这几天一直在写一个股票软件,用的ACCESS来存储数据,用的ADO方式来操作数

据库,在自己机子上运行得好好的,在别人机子上就完全用不起,调试了很久才发现问题

锁定在hr = m_Instance(__uuidof(Connection));这条语句

上,这条语句是创建一个Connection对象,正确执行后是能创建的,但是在别人机子上

就是不能正确执行,弄了一天也没弄明白,后来跟一个朋友聊天,从他那里得知原来在

Win7 SP1的操作系统上编译的ACCESS应用程序不能在比Win7 SP1的低版本操纵系统

上运行,而别人的机子恰好都不是Win7 SP1的操作系统,找到原因就好办了,一下是微

软给出的官方解释和解决办法。

症状:

请考虑下面的方案。在计算机上正在运行 Windows 7 Service Pack 1 (SP1) 或

Windows 服务器 2008 R2 SP 1 或具有 KB9823246 安装,您通过使用以下应用程序之

一重新编译 Microsoft ActiveX 数据对象 (ADO) 应用程序:

Microsoft Visual c + +

Microsoft Visual Basic for Applications (VBA)

Microsoft Visual Basic 6

Microsoft。NET 应用程序

在这种情况下,您发现应用程序不在级别较低的操作系统上运行。例如,它不会运行

Windows 7 的发行版、 Windows Vista 中,和其他早期的 Windows 版本。具体取决

于您的实施,您还会收到类似于下列内容之一的错误消息。(您可能收到其他错误消息。)

错误消息 1

REGDB_E_CLASSNOTREG (0X80040154)

错误消息 2

E_POINTER (0X80004003)

错误消息 3

E_NOINTERFACE (0X80004002)

错误消息 4

无法将对象强制转换 COM 类型为接口类型的 System.__ComObject 的 ADODB。

连接。此操作失败,因为 COM 组件的接口 IID

{00001550-0000-0010-8000-00AA006D2EA4} 上的 QueryInterface 调用失败,出现

以下错误: 不支持此界面 (从 HRESULT 异常: 0x80004002 (E_NOINTERFACE))。"


本文标签: 运行 应用程序 对象 错误