• 3282阅读
  • 0回复

请教在Qt中访问COM中的VARIANT数据类型的问题。 [复制链接]

上一主题 下一主题
离线bangqianchen
 

只看楼主 倒序阅读 楼主  发表于: 2009-07-22
在QT + AE编程时碰到个问题,有一个API,原形为:
  1. virtual HRESULT __stdcall get_PixelData ( long plane, VARIANT * pVal ) = 0


通过该函数可以正确的取得val值,但它是个二维数组。在QT中我是这样调用的,可以取出值,但是不知如何把varPixel转为数组。
  1.     _variant_t varPixels;
  2.     hr = ipPixelBlock3->get_PixelData(0,&varPixels);

    

以下是C#代码取VARIANT类型数据的方法,可供参考:
  1.   //Populate some pixel values to the pixel block.
  2.         System.Array pixels;
  3.         pixels = (System.Array)pixelblock.get_PixelData(0);
  4.         for (int i = 0; i < width; i++)
  5.             for (int j = 0; j < height; j++)
  6.                 if (i == j)
  7.                     pixels.SetValue(Convert.ToByte(255), i, j);
  8.                 else
  9.                     pixels.SetValue(Convert.ToByte((i * j) / 255), i, j);
  10.         pixelblock.set_PixelData(0, (System.Array)pixels);

请高手指点一二,谢谢。
快速回复
限100 字节
 
上一个 下一个