要在ATL DLL 的接口中传递自定义结构体怎么办,需要大家帮忙。

huhaibo777 2005-01-16 10:10:22
#typedef struct aaa{
long l,
BSTR str,
BOOL on
}

IBbbPtr pBbb(__uuidof(Bbb));

pBbb->function(传递上面定义的结构体);

pBbb.Release;
要在接口函数中传递这个结构体,应该怎样做?
...全文
299 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
SeekTruth 2005-01-20
  • 打赏
  • 举报
回复

qiangorqiang(qiangqiang)仁兄说的虽然麻烦了一点,可是最通用的解决方案.
savage54321 2005-01-19
  • 打赏
  • 举报
回复
那就要麻烦你老兄包装一下了!我觉得你还没明白ms推出COM和DCOM得目的。目的在于程序集的异步网络调用,而不是同步的数据传输.如果你要求的代码实施性强就要使用activex开发
huhaibo777 2005-01-19
  • 打赏
  • 举报
回复
如果在传递的结构体里有SOCKET s 这样的结构,在IDL不能定义这样的结构体呀??????
evlon 2005-01-19
  • 打赏
  • 举报
回复
帮人UP
qiangorqiang 2005-01-18
  • 打赏
  • 举报
回复
SAFEARRAY *pArray;
aaa data;
....
pArray = SafeArrayCreateVector(VT_I1 , 0 , sizeof(aaa));

char *pMem;
SafeArrayAccessData(pArray , (void **)&pMem);
memcpy(pMem , &data , szieof(aaa));
SafeArrayUnaccessData(pArray);

然后调用接口函数.

取出数据。
SAFEARRAY *pArray;
aaa data;
....
char *pMem;
SafeArrayAccessData(pArray , (void **)&pMem);
memcpy(&data , pMem , szieof(aaa));
SafeArrayUnaccessData(pArray);
savage54321 2005-01-18
  • 打赏
  • 举报
回复
不用像qiangorqiang(qiangqiang)兄说的那么麻烦。在idl定义自己的结构就好了!
huhaibo777 2005-01-18
  • 打赏
  • 举报
回复
谢几位仁兄了。
kenwhale 2005-01-18
  • 打赏
  • 举报
回复
http://www.mvps.org/vcfaq/com/4.htm
seaskyfox 2005-01-17
  • 打赏
  • 举报
回复
把结构定义到idl中

3,245

社区成员

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

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