在COM里面如何返回unsigned char数组

砝码 2005-11-28 05:11:03
如题,希望有人能解决这个问题。
...全文
303 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
砝码 2005-12-05
  • 打赏
  • 举报
回复
恳望请求
砝码 2005-11-30
  • 打赏
  • 举报
回复
看来要自己 UP 一下了。
砝码 2005-11-29
  • 打赏
  • 举报
回复
恳求赐教!!
砝码 2005-11-29
  • 打赏
  • 举报
回复
是希望大家多多的赐教。
砝码 2005-11-29
  • 打赏
  • 举报
回复
问题是这样的,我想实现 STDMETHODIMP ReadData(VARIANT Data, long *dwBuffer, int *Rst)
在VB里调用时,Data的定义是这样的,Dim bData(0 to 5) as Byte

 STDMETHODIMP ReadData(VARIANT Data, long *dwBuffer, int *Rst)
{
......
unsigned char *szBuffer=NULL;
for(int i=0;i<5;i++)
{
szBuffer[i]=i+10;
}
在这里我要把szBuffer的值通过Data这个参数传出去,但是在这里我不知道怎样处理,希 望大家啬赐教。
}


JinCC 2005-11-29
  • 打赏
  • 举报
回复
HRESULT GetStr([out,string]unsigned char**puchar);
砝码 2005-11-29
  • 打赏
  • 举报
回复
有没有人帮我解决这个问题啊????
JinCC 2005-11-29
  • 打赏
  • 举报
回复
HRESULT ReadData([out]long*psize,[out,size_is(,*psize)]unsigned char**ppdata);
用VC会这样定义,VB?不熟悉。
shou440 2005-11-28
  • 打赏
  • 举报
回复
传递指针啊
比如你要传递一个数组unsigned char[20],你可以这样声明你的接口函数
yourFunction(long unsigned_char_pointer),然后在函数里面将数组指针
强制转换过来就行,然后利用指针处理数组不就行了吗,例如
HRESULT yourFunction(long unsigned_char_pointer)
{

unsigned char* p=reinterpret_cast<unsigned char* >(unsigned_char_pointer)
//这样p就取得该数组的指针,下面你就可以对数组进行处理了^_^

xtuzi 2005-11-28
  • 打赏
  • 举报
回复
可以用BSTR然后转换,或用GlobalAlloc?

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧