VBA对c++的dll函数调用,怎么有缺参数
VBA to C++ dll function call, how to have missing argoument
我有一个函数,我用c++编译为dll。我通过vba访问它,没有问题,一切都很好。
如果用户没有指定其值,我希望将其中一个参数设置为特定的值。我不知道该怎么做,
我试过了__stdcall h2e_q_DLL (double &T,双&气,双&;D1,双&N,双&Df,双&Qa,双&Up =1.0)
最后值"up"被设置为1.0但是…
我得到这个:1>c:usersalexdocumentsc++h2e_projectv2testmain.cpp(8):错误C2440: '默认参数':无法从'double'转换为'double &'
我试着寻找一个解决方案,但没有找到任何东西,有人有任何建议吗?
谢谢!
恐怕不容易。可选参数必须是一个VARIANT。有关此结构的详细信息,请参阅Microsoft文档。
在C/c++端,检查变量结构的vt字段,如果没有传递值,该字段将被设置为缺失的类型。此时,您可以执行默认逻辑。
在Vba端,将参数声明为可选的byref变量。
你可以在这里提供一个默认值;我在火车上,所以不能检查。
从变量中提取数据会很有趣;在提取数据之前,使用vt标志检查类型。
相关文章:
- 函数调用中参数的顺序重要吗
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 如何用参数值调用函数(仅在运行时已知)
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- 函数调用C++中的参数太少
- 将参数打包的参数传递到 std::queue 中,以便稍后使用不同的函数调用
- 根据参数数调用 mixin 基类的构造函数
- 使用并行参数向量调用元素向量的成员函数
- uncrustify:如何将多行 C 函数调用的参数组合到一行上?
- 函数调用中的参数过多
- 使用显式模板参数列表和 [temp.arg.explicit]/3 的函数调用的演绎失败
- 可变参数模板函数:调用没有匹配函数,std::endl
- 对可变参数函数的递归调用的链接器错误
- 宏函数调用缺少参数警告,即使给定了参数
- 具有不同类型的可选参数的调用方函数
- C++ 使函数调用依赖于模板参数
- 迭代器的模板参数:函数在调用时推断类型?
- 如果我提前将参数声明为变量而不是将它们内联写入函数调用,那有什么区别(在内存方面)?
- 链接可变参数函数调用
- 递归可变参数函数调用对简单 if.else 语句的性能