![](/img/trans.png)
[英]C++ 64-bit Excel add-in (XLL) is not loading correctly in 64-bit Excel
[英]C++ using adodb to read excel file in 64-bit windows 7?
我有一個使用adodb讀取32位Windows中的excel文件的舊式c ++代碼,它正在運行文件,類似於:
#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));
現在移至要部署的新環境(64位Windows + 64位excel),代碼無法運行,錯誤消息為“找不到提供程序”。
試圖解決問題,但是在Internet上搜索后,我有點困惑。
關於Windows DAC / MDAC的 Microsoft 常見問題解答似乎說,“ Microsoft數據訪問組件(MDAC)”包括ADO,OLE DB和ODBC; 但是MDAC已過時,現在該程序包稱為“ Windows數據訪問組件(Windows DAC)”,它將自動安裝在Windows 7中。
-因此,我不需要在64位Windows 7上安裝MDAC,而在Microsoft數據訪問組件(MDAC)2.8 SP1上的下載是32位的嗎?
但是,如何使用舊代碼調用msado15.dll
來讀取Excel?
我應該將32位MDAC安裝到SysWOW64
文件夾並繼續使用嗎? 但是,此32位msado可以打開由64位excel創建的excel文件嗎?
還是我應該使用“ Windows DAC”中的其他dll在64位Windows上使用ado?
或者,我必須放棄ado並找到其他方法來讀取c ++中的excel文件?
如果有人碰巧要在裝有Office 64位的x64 Windows機器上訪問C ++代碼中的excel數據,則需要
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.