2014-01-16 66 views
0

我有一個類型庫是在Visual C++中創建的,我試圖在VBA中調用它的函數。我有兩個文件:utility.dllutility.tlb。通過參考文獻,我在VBA項目中引用了該庫,並瀏覽至utility.tlb。但是,當我編譯項目,我得到一個錯誤信息:試圖使用類型庫,但我得到一個文件未找到錯誤

File not found: utility.dll 

我都放在同一目錄中有VBA項目的.XLSM文件都庫文件。我想,也許這是一個DLL註冊問題,所以我想上運行utility.dllregsvr32,並得到了以下錯誤消息:

The module "utility.dll" may not compatible with the version of Windows 
that you're running. Check if the module is compatible with an x86 (32-bit) 
or x64 (64-bit) version of regsvr32.exe. 

我有機會獲得源代碼,文件的.sln等爲C++項目創建了庫文件。

接下來我應該做些什麼來使我的VBA項目能夠使用此類型庫?

+0

改爲使用c:\​​ windows \ syswow64 \ regsvr32.exe。 –

+0

@HansPassant,這給了我關於'可能不兼容'[原文如此]的相同迴應。 – sigil

+0

在Visual Studio中轉到解決方案屬性,然後在Build選項卡上選擇您的平臺 - 如果它是一個用於64位辦公室的64位類庫,則選擇「x64」作爲平臺目標而不是任何CPU – 2014-01-17 08:18:54

回答

0

問題是類型庫的DLL搜索路徑被硬編碼到只存在於開發機器上的文件夾中。改變這個消除了錯誤。

相關問題