J'ai un code héritage C++ en utilisant adodb de lire le fichier Excel dans Windows 32 bits, il est le fichier en cours d'exécution et il est quelque chose comme:C++ en utilisant adodb pour lire le fichier Excel dans Windows 7 64 bits?
#import "C:/Program Files/Common Files/System/ado/msado15.dll" rename("EOF", "adoEOF") rename("BOF", "adoBOF")
string conn_str;
if(*(file_name.back()) == 'x')
conn_str = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + file_name + ";Extended Properties=\"Excel 12.0 Xml;HDR=Yes;IMEX=1\"";
else
conn_str = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=" + file_name + ";Extended Properties=\"Excel 8.0;HDR=Yes\"";
::CoInitialize(NULL);
pRec->Open("SELECT * FROM [" + SheetName + "]", conn_str, adOpenStatic, adLockOptimistic, adCmdText));
maintenant passer au nouvel environnement de déploiement (Windows 64 bits + 64 bits excellent), le code ne peut pas s'exécuter, le message d'erreur est "le fournisseur n'a pas pu être trouvé".
Essayer de résoudre le problème, mais après une recherche sur Internet, je suis un peu confus.
Microsoft FAQ About Windows DAC/MDAC etc semblent dire, "Microsoft Data Access Components (MDAC)" inclut ADO, OLE DB et ODBC; mais MDAC est obsolète, et maintenant le paquet est appelé "Windows Data Access Components (Windows DAC)" qui est automatiquement installé dans Windows 7.
- Donc je n'ai pas besoin d'installer MDAC sur Windows 7 64 bits , et le téléchargement sur Microsoft Data Access Components (MDAC) 2.8 SP1 est un 32 bits?
Mais comment pourrais-je utiliser le code existant appeler msado15.dll
lire Excel?
Dois-je installer le MDAC 32 bits SysWOW64
dossier et continuer à l'utiliser? Mais ce msado de 32 bits peut-il ouvrir un fichier Excel créé par Excel 64 bits?
Ou vais-je utiliser une autre dll de « Windows DAC » à utiliser de bruit sur un ordinateur Windows 64 bits?
Ou, je dois renoncer à tarder et trouver un moyen d'autre pour lire les fichiers Excel en C++?