【发布时间】:2015-09-17 11:25:38
【问题描述】:
我在使用 vba Excel 64 位 (Win8) 中的 DLL 函数时遇到问题。 当我强制从绝对 DLL 路径加载函数声明时,如下所示,没有问题,我的代码运行良好。
Private Declare PtrSafe Function get_Ith Lib "MYPATH\CVode.dll" (ByVal lpv As LongPtr, ByVal i As LongPtr) As Double
但是,我不想要绝对路径。因此,我将 dll 文件放在 excel 文件旁边(在同一文件夹中)并声明如下函数:
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文件将所有功能导出到外部程序。
如果你能帮助我,我将不胜感激
【问题讨论】:
标签: c++ excel vba dll windows-8