比如,我在Activex中定义函数 short CCertOcxCtrl::GetPhotoInfo(VARIANT FAR* vtPhotoInfo) 
在 CCertOcxCtrl 中有一个指针,已分配对应的内存空间,存对应图片的数据。
如:char *pPhoto ,对应有 nPhotoSize个字节。现在要在VC及JS中调用该Activex的函数,得到图片的数据。该怎么实现。 急,邮箱:[email protected],解决马上结贴。

解决方案 »

  1.   

    char*根本不被js识别,可以用safearray<UI1>来处理图像数据
      

  2.   

    to jameshooo : 
       我指的 char*是在 ocx中已读取图片数据,并存在pPhoto中 . 
     GetPhotoInfo函数是给外部调用的,调用该函数时,在该函数中 
        psa=SafeArrayCreate(VT_I1,1,rgsabound);  // VT_VARIANT
       char szSetAt ; 
       for(int idx = 0 ; idx < nPhotoSize ; idx++
        {
               szSetAt = pPhoto[idx] ; 
       SafeArrayPutElement(psa,&idx,&szSetAt); 
        }  V_VT(vtPhotoInfo)    =  VT_ARRAY | VT_I1 ; //VT_VARIANT ; 
        V_ARRAY(vtPhotoInfo) = psa; 我在 OCX中是处理对应的数据了,但在JS中如何调用?? 另外,我想问下,我若在OCX中定义函数 
    GetPhoto(shor far * pPhoto) ,则在JS中传数组时,如何传:
     使用 var photo = new array(50000);
      GetPhoto(photo) ,提示 类型不匹配。
      

  3.   

    js里的array实际上是IDispatch,应该用VBArray才表示SAFEARRAY
      

  4.   

    各位高手,我是进来学习的。我也有这方面的问题,请大家来解答。
    http://topic.csdn.net/u/20090505/09/07f68cb8-1df0-4f4d-9094-57b666c3f272.html