Visual Studio 2019 C ++ dll Excel VBA加载项问题

吉姆·冈恩

我在使一个简单的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
吉姆·冈恩

我终于在下面的代码中得到了这个示例Excel VBA可访问的MSVC Dll。我在Visual Studio中执行此操作时遇到了问题(尚未建立MSBuild学习曲线)。因此,按照下面代码中的注释,我使用VS代码通过smdll.cpp和smapp.cpp的命令行编译进行了此操作。我在下面包括了C ++测试代码(smapp.cpp)和VBA代码。可以为C ++测试代码添加调试编译开关[/ LDd(smdll.cpp)和/ Zi(smapp.cpp)]。我使用VS2019“开发人员命令提示符”执行:“ ...> dumpbin / EXPORTS smdll.dll”来确定VBA别名(_SimpleMath @ 4)。

有关如何在VS2019中使用VS2019 MSBuild进行“ get_up_the_curve”的指南,将不胜感激?我能够在VS Code中使用Build和Debug脚本。我无法使* .def文件方法正常工作。对此的指导也将不胜感激。

 //smdll.cpp
 // cl /EHsc /LD smdll.cpp
 #include "smdll.h"
 extern "C" {__declspec(dllexport)  long __stdcall SimpleMath(long  x)
    {   long result = 0;
        for (long a = 0; a <= x; a++) result += a;
        return result;
    }
  }
// smdll.h
extern "C" {__declspec(dllexport)  long __stdcall SimpleMath(long  x);}
// smapp.cpp
// cl /EHsc smapp.cpp smdll.lib
#include <iostream>
#include "smdll.h"
using namespace std;
void main () {
    const long x = 5;
    long result = SimpleMath(x);
    cout << "Ans: " << result << endl;
}
'Excel VBA subroutine
Option Explicit
'used "...>dumpbin /EXPORTS smdll.dll VS 2019 command to get below Alias for smapp
Declare Function smapp Lib "<Path_to>\SimpleMath\smdll.dll" Alias "_SimpleMath@4" (ByVal a As Long) As Long
Sub test()
Dim x, result As Long
x = 5
result = smapp(x)
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Visual Studio 2019 C ++ CodeLens

来自分类Dev

用于Office的C#Visual Studio工具会出现此错误:Excel遇到X加载项的问题

来自分类Dev

C#Visual Studio Excel加载项:如何检测Excel Office主题更改?

来自分类Dev

Visual Studio 2012 C#-导入DLL

来自分类Dev

Visual Studio 2019中的Cherry Pick问题

来自分类Dev

在Visual Studio中替换依赖项DLL

来自分类Dev

Visual Studio 2012无法加载DLL

来自分类Dev

dll Visual Studio 2010(C#)中的Debugger.Break()和Delphi 6问题

来自分类Dev

在 Visual Studio C# 2013 中导入 matlab .dll 导致问题

来自分类Dev

Visual Studio 2013 dll导出链接错误(LNK2019 / LNK1120)

来自分类Dev

在Visual Studio 2019中以“单个文件”发布时,如何摆脱SNI.dll?

来自分类Dev

Visual Studio 2013 dll导出链接错误(LNK2019 / LNK1120)

来自分类Dev

Visual C ++创建DLL缺少依赖项

来自分类Dev

使用Visual Studio 2019 C#的gRPC构建错误

来自分类Dev

XLL是Platform Toolset Visual Studio 2019的“不是有效的加载项”编译

来自分类Dev

Visual Studio C#-找不到SQLite.Interop.dll

来自分类Dev

无需DLL的Visual Studio托管C ++的编译解决方案

来自分类Dev

Visual Studio C ++中的msmpi.dll错误消息

来自分类Dev

无需DLL的Visual Studio托管C ++的编译解决方案

来自分类Dev

需要在Visual Studio(C#)中使用DLL的帮助

来自分类Dev

将项目升级到Visual Studio 2019的问题

来自分类Dev

Visual Studio Community 2019-运行,安装和报告问题

来自分类Dev

由于SSL证书问题而无法更新Visual Studio 2019

来自分类Dev

Visual Studio 2019的React Redux Project模板,JavaScript问题

来自分类Dev

Visual Studio 2017中的Visual Studio 2019 C#代码颜色

来自分类Dev

我可以使用现有的C代码创建Visual Studio 2019项目吗?

来自分类Dev

项目无法在Visual Studio 2019中加载:工具版本和SDK参考问题

来自分类Dev

Visual Studio 2012:无法加载组件dll无法启动程序

来自分类Dev

在Visual Studio 2019 C ++中使用CPPUnitTest编写“ DivideByZero”单元测试用例时出现问题

Related 相关文章

  1. 1

    Visual Studio 2019 C ++ CodeLens

  2. 2

    用于Office的C#Visual Studio工具会出现此错误:Excel遇到X加载项的问题

  3. 3

    C#Visual Studio Excel加载项:如何检测Excel Office主题更改?

  4. 4

    Visual Studio 2012 C#-导入DLL

  5. 5

    Visual Studio 2019中的Cherry Pick问题

  6. 6

    在Visual Studio中替换依赖项DLL

  7. 7

    Visual Studio 2012无法加载DLL

  8. 8

    dll Visual Studio 2010(C#)中的Debugger.Break()和Delphi 6问题

  9. 9

    在 Visual Studio C# 2013 中导入 matlab .dll 导致问题

  10. 10

    Visual Studio 2013 dll导出链接错误(LNK2019 / LNK1120)

  11. 11

    在Visual Studio 2019中以“单个文件”发布时,如何摆脱SNI.dll?

  12. 12

    Visual Studio 2013 dll导出链接错误(LNK2019 / LNK1120)

  13. 13

    Visual C ++创建DLL缺少依赖项

  14. 14

    使用Visual Studio 2019 C#的gRPC构建错误

  15. 15

    XLL是Platform Toolset Visual Studio 2019的“不是有效的加载项”编译

  16. 16

    Visual Studio C#-找不到SQLite.Interop.dll

  17. 17

    无需DLL的Visual Studio托管C ++的编译解决方案

  18. 18

    Visual Studio C ++中的msmpi.dll错误消息

  19. 19

    无需DLL的Visual Studio托管C ++的编译解决方案

  20. 20

    需要在Visual Studio(C#)中使用DLL的帮助

  21. 21

    将项目升级到Visual Studio 2019的问题

  22. 22

    Visual Studio Community 2019-运行,安装和报告问题

  23. 23

    由于SSL证书问题而无法更新Visual Studio 2019

  24. 24

    Visual Studio 2019的React Redux Project模板,JavaScript问题

  25. 25

    Visual Studio 2017中的Visual Studio 2019 C#代码颜色

  26. 26

    我可以使用现有的C代码创建Visual Studio 2019项目吗?

  27. 27

    项目无法在Visual Studio 2019中加载:工具版本和SDK参考问题

  28. 28

    Visual Studio 2012:无法加载组件dll无法启动程序

  29. 29

    在Visual Studio 2019 C ++中使用CPPUnitTest编写“ DivideByZero”单元测试用例时出现问题

热门标签

归档