我正在使用C++创建一个简单的DLL,我可以使用VBA代码。但是,虽然它在我的开发计算机上工作,但试图访问不同计算机上的DLL时,VBA声明DLL文件未找到,尽管硬编码路径。尽管硬编码位置,VBA仍无法找到我的DLL。
我的DLL看起来像这样(使用Visual C++ 2010为表达一个Win32 DLL项目):
DEF文件:
LIBRARY "squareNumber"
EXPORTS
squareNumber
Function.cpp:
double __stdcall squareNumber(double & x)
{
return x*x;
}
的VBA代码如下所示:
Public Declare Function squareNumber Lib "C:\MySimpleDLL.dll" (ByRef number As Double) As Double
Sub test()
MsgBox squareNumber(2)
End Sub
我对C++ DLL非常陌生,我编写的DLL错误,还是VBA的问题?
使用RegSvr32还会产生“模块[dllpath]加载失败,请确保二进制文件存储在指定路径或调试它以检查二进制或相关.DLL文件的问题。
Project + Properties,C/C++,代码生成。将运行时库更改为/ MT。这可以避免在忘记在目标机器上安装CRT或使用Debug版本而不是Release版本时的麻烦。 –