gpt4 book ai didi

c++ - Excel VBA : "Run-time error ' 4 9': Bad DLL calling convention" calling C++ dll

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:44:10 25 4
gpt4 key购买 nike

我正在尝试从 Excel-VBA 调用 C++ DLL。

我知道 DLL 函数正在执行,因为我插入了 fputs() 记录调用以跟踪执行情况,并且标记显示在我的日志文件中。问题是,每当 DLL 函数返回时,我都会收到错误 49。

这是 VBA 中的声明:

Private Declare Function InitMCR Lib "MCRBoilerplate.dll" Alias "?initMCR@@YGXXZ" ()

这是C++中的声明

__declspec(dllexport) void __stdcall initMCR() { ... }

为什么我会收到此错误 49 行为,即使 DLL 调用似乎正常运行?

最佳答案

在 VBA 中,返回 void 的函数需要声明为 Sub 而不是 Function

所以VBA中的声明应该是:

Private Declare Sub InitMCR Lib "MCRBoilerplate.dll" Alias "?initMCR@@YGXXZ" ()

参见 MSDN page on VBA Declare statement

关于c++ - Excel VBA : "Run-time error ' 4 9': Bad DLL calling convention" calling C++ dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24578923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com