- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[计算机]关于在Win7 SP1操作系统下编译的ADO应用程序不能在比Win7 SP1版本低的操作系统上运行
关于在Win7 SP1操作系统下编译的ADO应用程序不能在比Win7 SP1版本低的操作系统上运行,微软给出的解释和解决方案
Posted on 2011-09-11 09:15?Mr-Victor?阅读(99)?评论(2)?编辑?收藏?
本文解决方案摘自:/kb/2517589
?
这几天一直在写一个股票软件,用的ACCESS来存储数据,用的ADO方式来操作数据库,在自己机子上运行得好好的,在别人机子上就完全用不起,调试了很久才发现问题锁定在hr = m_pLocalConnection.CreateInstance(__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 (0
错误消息 2
E_POINTER (0
错误消息 3
E_NOINTERFACE (0
错误消息 4
无法将对象强制转换 COM 类型为接口类型的 System.__ComObject 的 ADODB。连接。此操作失败,因为 COM 组件的接口 IID 0000-0010-8000-00AA006D2EA4} 上的 QueryInterface 调用失败,出现以下错误: 不支持此界面 (从 HRESULT 异常: 0(E_NOINTERFACE))。
?
以下 Visual c + + 代码段复制此问题。
#import msado15.dll no_namespace rename(EOF,EndOfFile)
int main()
{
CoInitialize(NULL);
_ConnectionPtr pConnection = NULL;
HRESULT hr = pConnection.CreateInstance(__uuidof(Connection)); //hr gets E_NOINTERFACE here
}
下面的 Visual Basic for Applications,代码段复制此问题。
Private Sub Form_Load()
Dim Conn As New ADODB.Connection ‘Runtime error here: Class does not support Automation or does not support expected interface
End Sub
VBA 错误:运行时错误430: 类不支持自动化或不支持所需的接口 请注意?Microsoft 不能再用于 ADO 支持的主互操作程序集,并不再支持 Visual Basic 6。有关 Visual Basic 6 可支持性的详细信息,请访问下面的 MSDN 网页:
在 Windows Vista、 Windows Server 2008 和 Windows 7 Visual Basic 6.0 支持语句(/en-us/vbasic/ms788708.aspx)
有关 ADO 支持能力的主互操作程序集的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
318559?(/kb/318559/ )?有关 AD
文档评论(0)