最近升級爲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似乎並不高效。
非常感謝提前!
1.測試在開發機器2.使用釋放模式的dll,因爲函數簽名不同的是這3.檢查:Excel是x64和DLL是x86嗎?或Excel是x86和DLL是X64? – neohope