将字符串数组从 VB6 传递到 COM 对象
Posted
技术标签:
【中文标题】将字符串数组从 VB6 传递到 COM 对象【英文标题】:Pass an array of strings from VB6 to a COM object 【发布时间】:2012-03-22 08:26:57 【问题描述】:我正在使用 ATL 创建一个围绕 DLL 的 COM 包装器。对于某些函数,我需要传递一个字符串数组。我将如何设置 IDL,以便 VB6 中的智能感知将参数显示为“String()”,而不仅仅是“String”或“Variant()”?
【问题讨论】:
【参考方案1】:你需要:
[in, out] SAFEARRAY(BSTR)* inout_asParam
【讨论】:
我就是这么想的。那么为什么我在使用时会出错:[id(2), helpstring("method StartupInitialization")] HRESULT StartupInitialization([in] LONG argc, [in] SAFEARRAY(BSTR)* argv, [in] SAFEARRAY(BSTR)* argE, [out,retval] IWorkArea** WA);
error C2143: syntax error : missing ',' before '*' error C2059: syntax error : ')' error C2143: syntax error : missing ')' before ';' 以上是关于将字符串数组从 VB6 传递到 COM 对象的主要内容,如果未能解决你的问题,请参考以下文章