#VAL!尝试使用 DLL 从 Excel 调用简单 C++ 程序时的答案

#VAL! answers when trying to call a simple c++ program from excel with DLL

本文关键字:C++ 简单 调用 程序 答案 Excel DLL #VAL      更新时间:2023-10-16

我对 c++ 很陌生,对创建 DLL 文件也很陌生。作为训练练习,我尝试创建一个简单的 excel 函数,将输入数据乘以 12。但是,excel不断抛出值错误。

我想我遇到了类似于在 excel 中使用 C++ 2010 dll 的问题。我按照 www.maths.manchester.ac.uk/~ahazel/EXCEL_C++.pdf 中的说明创建了代码,当它不起作用时,我进一步简化了它。

我的 cpp 文件是:

#include "stdafx.h"
using namespace std;
static int  _stdcall Multiply(int x)
{
    int a = 12;
    return a*x;
}

我的 DEF 文件是:

LIBRARY DLLtest
EXPORTS
Multiply

最后,我的VBA代码是:

Declare Function Multiply _
Lib "C:Users[path]DebugDLLtest.dll" _
(ByVal x As Integer) As Integer

编辑:我可能应该补充一点,我正在使用excel 2010和visual studio express 2013。c++代码还附带了一些dllmain.cpp和stdafx中的预构建代码.cpp但我假设这不是问题所在。

事实证明,

您必须更改编译器/项目中的选项,以使其了解如何使用 def 文件和 DLL。这个网站给出了一个很好的解释。