我们正在将产品从VB6迁移到VB.NET并面临一个问题。 此产品与VC ++组件(.ocx)中定义的函数交互。
VB6& VB.NET函数调用:
result = TestFunc(Param1,Param2,Param3)
VC ++: a).CPP文件中的函数定义: long TestFunc(long FAR * Param1,const VARIANT FAR& Param2,long Param3) { ... }
DISP_FUNCTION(Ctrl," TestFunc",TestFunc,VT_I4,VTS_PI4 VTS_VARIANT VTS_I4)
b).ODL文件中的函数签名: long TestFunc(long * Param1,VARIANT Param2,long Param3);
c).h(标题)文件中的函数签名: afx_msg long TestFunc(long FAR * Param1,const VARIANT FAR& Param2,long Param3);
"参数2"在上面" TestFunc"在VB6和VB中被定义为字节数组。 VB.NET。
在VC ++中," Param2"的相应类型。在" TestFunc"是 - " const VARIANT FAR&参数2"
在VB6中,传递的字节数组值在VC ++" TestFunc"中得到修改。 &安培;修改后的值在VB6" Param2"变量
VB.NET中的问题:
在VB.NET中,传递的字节数组值在VC ++" TestFunc"中得到修改。 但是,修改后的值不会从VC ++传输到VB.NET。 " Param2"变量仍然具有原始值&不是修改后的值。
请您提供有关如何从VC ++组件中的Variant变量获取VB.NET中修改后的字节数组值的信息?
提前致谢。