该ActiveX控件,在VC例子中是是这样:
    COleSafeArray  buff;
    buff.CreateOneDim(VT_UI1, nSize);
结果正确,在buff中得到数据。那么在DELPHI中对应的应该是:
    buff:OleVariant;
    buff:=VarArrayCreate([0,nSize-1],varByte);
但是最后结果不对,buff中内容没有改变,我开CPU窗口跟踪了一下,发现里面很多检查数据类型的语句,是否DELPHI的数据类型无法兼容该控件?
    有解决方案吗?  

解决方案 »

  1.   

    暈...COleSafeArray 這個是MFC地誰寫地dll 。。怎麼用用專屬地類型作為參數??
      

  2.   

    DELPHI里面也可以用安全数组的,但我现在用了就是不对
      

  3.   

    在delphi调用必需用安全数组
    buff:OleVariant;
    Pbuff:PSafeArray;
    Pbuff:=PSafeArray(TVarData(buff).VArray);
      

  4.   

    是啊,我也遇见同类的问题,我是在做OLYMPUS 相机开发的时候,OCX SDK的问题,但似乎是有问题,我后来用DLL,但也没有解决这个问题
      

  5.   

    估计不行
    COleSafeArray  是需要MFC支持的
    你自己用bcb或者MFC重写个activex控件(或者其他形式),将上面的问题转化一下看看能不能实现
      

  6.   

    有没有试下 dmyb7233(东东) 的提议, 我也觉得可能是这样解决