VC ++(ocx)与...之间的互操作性问题VB.NET应用程序

时间:2016-01-21 07:45:25

标签: vb.net visual-c++

我们正在将产品从VB6迁移到VB.NET并面临一个问题。 此产品与VC ++组件(.ocx)中定义的函数交互。

  1. VB6& VB.NET函数调用:

    result = TestFunc(Param1,Param2,Param3)

  2. VC ++: a).CPP文件中的函数定义:    long TestFunc(long FAR * Param1,const VARIANT FAR& Param2,long Param3)     {     ...     }

  3. 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中修改后的字节数组值的信息?

    提前致谢。

0 个答案:

没有答案