我想在Excel中运行C函数,但我一直得到“#NAME?”我试图打电话给他们时出错 . 我正在使用Visual Studio 2015和Excel 2016 .

.cpp文件(temp.cpp):

_declspec(dllexport) double _stdcall square(double x)
{
    return x*x;
}

Excel VBA中的声明:

Declare Function square _
Lib "c:\users\rune\documents\visual studio 2015\Projects\temp\Debug\temp.dll" Alias "?square@@YGNN@Z" (ByVal x As Double) As Double

这是我做的:

在Visual Studio中,在“File \ New \ Project \ Win32 Console Application”中,我选择“应用程序类型”下的“DLL”和“其他选项”下的“清空项目”(我取消选中“安全开发生命周期[SDL]检查”) . 我在“Project \ Properties \ Configuration Properties \ C / C \ Advanced”中将Calling Convention更改为“__stdcall(/ Gz)” . 然后我编译了该项目 .

在Excel中,我添加了一个带声明的新模块,并在单元格中尝试了以下公式:

=square(10)

我究竟做错了什么?