wgr*_*ant 5 c++ dll excel vba excel-vba
我试图从Excel-VBA调用C++ DLL.
我知道DLL函数正在执行,因为我插入了fputs()记录调用以跟踪执行,并且标记显示在我的日志文件中.问题是,每当DLL函数返回时,我得到错误49.
这是VBA中的声明:
Private Declare Function InitMCR Lib "MCRBoilerplate.dll" Alias "?initMCR@@YGXXZ" ()
Run Code Online (Sandbox Code Playgroud)
这是C++中的声明
__declspec(dllexport) void __stdcall initMCR() { ... }
Run Code Online (Sandbox Code Playgroud)
为什么我得到此错误49行为,即使DLL调用似乎工作?
在VBA中,返回的函数void需要声明为Sub而不是Function
所以VBA中的声明应该是:
Private Declare Sub InitMCR Lib "MCRBoilerplate.dll" Alias "?initMCR@@YGXXZ" ()
Run Code Online (Sandbox Code Playgroud)