2016-09-03 78 views
0

最近升級爲Win 10 Pro的新PC,Excel 2016隨Office365,vs2015社區發佈。構建一個非常簡單的vC++ dll,只有一個函數在def文件中導出。代碼非常簡單,但仍然會在這裏發佈內容並確保其中沒有問題。Excel 2016 VBA未能通話vs2015 C++ dll

//also tried __declspec(dllexport) double sumCPP(double a, double b) without .def file 
double __stdcall sumCPP(double a, double b) 
{ 
    return a + b; 
} 

'VBA 
Public Declare PtrSafe Function sumCpp Lib "C:\MyTestProject\x64\Debug\DllTest.dll" (ByVal a As Double, ByVal b As Double) As Double 

但是,從VBA調用導致運行時錯誤 '48':未找到文件:C:\爲MyTestProject \ 64 \調試\ DllTest.dll。

一個更復雜的dll項目的源代碼可以構建到EXE運行良好,但其DLL提示此原始失敗調用DLL的問題。任何建議在哪裏看?我已經嘗試了很多所謂的假報警和dumpbin /依賴的depends.exe,但不清楚如何使用結果。我想知道這是否與不在系統PATH中的某些VS2015可再發行相關。我沒有看到那裏,但還沒有嘗試添加它們,因爲它似乎太多了。

除了使用vC++ dll之外,還有其他的選擇委託繁重的計算和TCP/IP套接字嗎?我不知道,但可以考慮C#,而Python是首選。由於這些dll函數是打算在VBA中多次調用的,因此係統調用vC++ exe似乎並不高效。

非常感謝提前!

+0

1.測試在開發機器2.使用釋放模式的dll,因爲函數簽名不同的是這3.檢查:Excel是x64和DLL是x86嗎?或Excel是x86和DLL是X64? – neohope

回答

0

由於機器是新的,所以我重置它刪除所有數據。然後,我從頭開始安裝Office 2016 64bit和VS Community 2015,並再次構建64位dll。這次錯誤是運行時錯誤'453'找不到DLL入口點。通過dumpbin.exe/dependents或depend.exe找不到任何明顯缺失的依賴dll。

從「調試」到「放」
0

嘗試改變構建配置

+0

並確保您在SysWow64文件夾中有vsruntime140.dll – user7856785