2010-06-25 4 views
0

Le code suivant se comporte différemment selon si j'utilise 32 ou version 64 bits de wscript:Comment forcer l'application 32 bits à utiliser une DLL COM 64 bits dans CreateObject?

Set oSQLServer = CreateObject("SQLDMO.SQLServer") 

For Each o in oSQLServer.ListInstalledInstances 
    MsgBox o 
Next 

En 32 bits, il liste les instances de mon serveur 32 bits (SQL Server 2000), en 64 bits Je reçois le contenu de mon serveur 64 bits (SQL Server 2008). J'ai besoin de convertir ce code en C++ (une application 32 bits). Mais j'ai besoin de montrer les serveurs 64 bits. Comment puis-je forcer l'objet créé à utiliser la DLL 64 bits et 64 bits dans le Registre?

Répondre

0

J'ai décidé d'utiliser SQLBrowseConnect de ODBC avec la chaîne de connexion

"DRIVER={SQL Server Native Client 10.0};". 

SQLDMO est bien et mort truely, et SQLSMO est assez courte vue pour les applications gérées uniquement.

5

Une application 32 bits ne peut pas charger une DLL 64 bits et une application 64 bits ne peut pas charger une DLL 32 bits.

+0

Qu'en est-il de hors-proc? –

+1

Une application 32 bits ** peut ** utiliser un objet COM hors de 64 bits, et vice versa. Comme l'objet doit de toute façon être placé entre les limites de processus, COM gère de manière transparente les différences de bits pour vous. –

Questions connexes