我有用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:'默认参数' :无法转换为' double'到'加倍&'
我试图寻找解决方案,但找不到任何东西,有人有什么建议吗?
谢谢!
答案 0 :(得分:2)
我害怕这不容易。可选参数必须是VARIANT。有关此结构的详细信息,请参阅Microsoft文档。
在C / C ++方面,检查变体结构的vt字段,如果尚未传递值,将将其设置为缺失类型。此时你可以做你的默认逻辑。
在Vba端,您将参数声明为可选的byref变体。
您可以在此处提供默认值;我在火车上,所以无法检查。
您可以从变体中提取数据;在提取数据之前使用vt标志检查类型。