Visual Studio 2019 C ++ dll Excel VBA插件问题

问题描述 投票:1回答:1

我在使用简单的Excel VBA插件时遇到问题。我正在使用https://www.vitoshacademy.com/c-adding-c-function-to-vbaexcel/处的简单示例入门,但即使这个简单示例也无法正常工作。下面是SimpleMath.cpp,defMe.def和VBA代码。我已经在SimpleMath.cpp属性中添加了:链接器:输入:模块定义文件:defMe.def。在VS2019中,C ++代码按预期在Debug文件夹中成功编译并生成SimpleMath.dll。但是我尝试了许多替代方法,但是无法使Excel中的VBA代码正常工作。由于该示例的许多Web变体都显得陈旧,我想知道VS2019 / C ++是否需要旧示例中未涵盖的内容?

在Excel中,我收到“运行时错误'453':无法在c:\ VS19Projects \ CPP \ SimpleMath \ Debug \ SimpleMath.dll中完善DLL入口点SimpleMath”。

我已使用dumpbin / HEADERS SimpleMath.dll尝试查看dll入口点。没有返回入口点。这似乎表明我对* .def的使用不正确。

指导和建议将不胜感激。

//SimpleMath.cpp
int __stdcall SimpleMath(int & x)
{
    int result = 0;
    for (int a = 0; a <= x; a++) {
        result += a;
    }
    return result;
}
;defMe.def C++ code
LIBRARY "SimpleMath"
EXPORTS
SimpleMath
// VBA Code in Excel Module
Declare Function SimpleMath Lib "C:\VS2019Projects\SimpleMath\Debug\SimpleMath.dll" (ByRef x As        Long) As Long
Sub TestMe()
    Dim n As Long: n = 5
    dim result as long
    result = SimpleMath(n)
End Sub
c++ excel visual-studio dll
1个回答
0
投票
我仍然没有使用Excel的DLL。我进行了认真的研究,以学习并调试并使用Excel。

我已经尝试使用C ++ * .def和VBA Declare进行EXPORTS的变体。没有成功。

然后我发现了MSFT Mixed Mode Debugging Tutorial。我能够在VS2019中快速运行此C ++ DLL / C#示例应用程序。我无法使其适应Excel VBA。我对“本地和托管C ++代码”的理解肯定是不够的。

我的项目目标是最终(并希望)成功创建一个高性能C ++ DLL,以加快Excel中大型2d数组计算的速度。我有一个性能较低的C#COM dll,但需要一个C ++ DLL的较高性能。但是我什至无法使这种简单得多的C ++ DLL正常工作。

实现这些目标的指导和建议将不胜感激。

© www.soinside.com 2019 - 2024. All rights reserved.