我有一个使用C ++编写的DLL,其中包含如下函数:
bool _stdcall vbaBoolTest(LPSAFEARRAY *values)
我已经设置了Visual Studio让我使用Excel调试DLL。我在VBA中声明了这个函数:
Private Declare Function vbaBoolTest Lib "myDLL.dll" (ByRef values() As Double) As Boolean
并且我注意到该函数在VBA方面总是评估为True。我可以调试使用这些函数的宏,并在C ++代码中设置断点。我试图在C ++中强制该值为false,但宏总是将返回值读为False。我通过在C ++中将返回类型更改为BOOL并返回TRUE或FALSE来解决它。
我想知道这是否是推荐的做事方式,或者是否有更好的方法。