0
我在使用vba Excel 64位(Win8)中的DLL函數時遇到問題。 當我強制函數聲明從絕對DLL路徑加載,如下所示,沒有問題,我的代碼運行良好。從vba中調用DLL函數excel 64位
Private Declare PtrSafe Function get_Ith Lib "MYPATH\CVode.dll" (ByVal lpv As LongPtr, ByVal i As LongPtr) As Double
但是,我不想要絕對路徑。於是,我把旁邊的Excel文件(在同一個文件夾中)dll文件和聲明功能如下所示:
Private Declare PtrSafe Function get_Ith Lib "CVode.dll" (ByVal lpv As LongPtr, ByVal i As LongPtr) As Double
然後我包括在Excel工作表中的Workbook_Open下面的語句。
Private Sub Workbook_Open()
ChDrive ThisWorkbook.Path
ChDir ThisWorkbook.Path
末次
我一直在使用這種方法爲這個DLL(但較新的版本),以及其他項目沒有任何問題。 但是現在vba會從dll函數返回一些不相關的值,我的程序將會被刪除。 順便說一句,該DLL已用C++編寫,我有源代碼。在源代碼中有.def文件將所有功能導出到外部程序。
我將不勝感激,如果你幫我出