我用vc一个ocx。通过variant 类型由ocx向外输出byte数组。
vc中
函数:
out(VARIANT FAR* buffer);vb中我这样:
'****************
dim s as variant   out s'***********
结果不对?但在我用vc做了一个测试程序没有问题。
VARIANT vt;
控件名称.out(&vt);请有相关经验的朋友指点一二。

解决方案 »

  1.   


    事实上,VB中只有唯一的一种变量类型,那就是VARIANT,所谓的String/Boolean/Object等等都保存在VARIANT中
      

  2.   

    谢谢各位 的光临。我的问题解决了。其实 程序没有问题哦。但只在跟踪的时候显示的结果就是不对,很奇怪。后来我用 
    Private Sub Command2_Click()
    Dim buf As Variant    V_ocx1.out buf   Dim ln As Long
       ln = UBound(buf)   Dim i%, str$
       For i = 0 To ln
           str = str & " " & Hex(buf(i))    
       Next   MsgBox str
    End Sub用 str输出之后是正确的值。。但是单步调试的话 值就变了。。很是奇怪
      

  3.   

    VB中就只有VARIANT的.
    单步什么不对?
      

  4.   

    单步执行的话 buf中值就不是正确的了,可能是在程序执行完之后,指向的那块地址的内容发生了变化
      

  5.   

    彻底解决了!有时返回的地址的内容发生变化这个问题,我是在ocx中使用了一个静态的char 来存放要输出的字符。这样就ok了。