0

我有用 C++ 编译为 dll 的函数。我通过 vba 访问它没问题,一切都很好。

如果用户未指定其值,我希望将其中一个参数设置为特定值。我不知道该怎么做

我试过 double __stdcall h2e_q_DLL (double & t, double & qi, double & d1, double & n, double & df, double & qa, double & up =1.0 )

最后一个值“up”设置为 1.0 但是......

我明白了:1>c:\users\alex\documents\c++\h2e_project\v2\test\main.cpp(8):错误 C2440:“默认参数”:无法从“双”转换为“双 &”

我试图寻找解决方案,但找不到任何东西,有人有什么建议吗?

谢谢!

4

1 回答 1

2

恐怕不容易。可选参数必须是 VARIANT。有关此结构的详细信息,请参阅 Microsoft 文档。

在 C / C++ 方面,您检查变体结构的 vt 字段,如果未传递值,该字段将被设置为缺失类型。此时,您可以执行默认逻辑。

在 Vba 方面,您将参数声明为可选的 byref 变体。

您可能可以在此处提供默认值;我在火车上,所以无法检查。

从变体中提取数据会很有趣;在提取数据之前使用 vt 标志检查类型。

于 2013-05-17T16:48:01.113 回答