0

我有一个 DLL,它为函数提供了一个可变参数列表,其定义如下

my_func(int var,...)

根据 my_func() 的调用方式,它需要或多或少的附加参数。

现在这个 DLL 必须被一个基于 MFC 的 ActiveX 控件包装。对于方法定义,我可以找到许多 VT_ 和 VTS_ 定义包装到特定的预定义类型。但是是否也可以有一个带有这样一个可变参数列表的 ActiveX 方法?

如果是:如何实施?

4

1 回答 1

0

尽管在技术上是可行的,但通过使用varargIDL 中的关键字与指定为的参数结合使用SAFEARRAY(VARIANT),不支持在 MFC ActiveX 项目中指定这种方法。你可以用 ATL 来代替,但我认为这将是一个巨大的不便,只是为了获得你描述的功能。

一些更好的选择(在我看来)是:

  1. 为包装函数的每个用例提供特定方法。
  2. 提供一个公开所有参数的方法,并添加一个 UINT 以根据应使用的参数设置标志。

我的选择是1。

于 2013-04-16T08:50:13.790 回答