如何强制32位应用程序在CreateObject中使用64位COM DLL?

时间:2010-06-25 09:03:13

标签: sql-server com 32bit-64bit createobject

以下代码的行为有所不同,具体取决于我是否使用32位或64位版本的wscript:

Set oSQLServer = CreateObject("SQLDMO.SQLServer")

For Each o in oSQLServer.ListInstalledInstances
    MsgBox o
Next

在32位中,它将列出我的32位服务器(SQL Server 2000)的实例,在64位中我获得了我的64位服务器(SQL Server 2008)的内容。 我需要将此代码转换为C ++(32位应用程序)。但我需要展示64位服务器。如何强制创建的对象在注册表中使用64位dll和64位密钥?

2 个答案:

答案 0 :(得分:5)

32位应用程序无法加载64位DLL,而64位应用程序无法加载32位DLL。

答案 1 :(得分:0)

我决定将ODBC的SQLBrowseConnect与连接字符串

一起使用
"DRIVER={SQL Server Native Client 10.0};".  

SQLDMO已经完全死了,而SQLSMO对于托管应用程序来说相当短视。