急急急!!!高分求救:如何在ATL实现的COM服务器接口中,接受图像数据!

wangdehou 2002-12-06 12:50:56
难题:我想利用MFC的CDIB类,在COM服务器端作为传入参数!可是在IDL中包含了头文件之后有很多错误产生!请问在ATL中如果要传递图像数据有哪些方法?请知道的兄弟姐妹不吝赐教啊!急急急!分不够可再加!
...全文
87 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangdehou 2002-12-10
  • 打赏
  • 举报
回复
最近这个问题解决了,为以上的一种,不过很有感触!谢谢各位了!
wkboy 2002-12-07
  • 打赏
  • 举报
回复
用内存交换文件,将文件指针传入com方法,再读出文件
librastar2001 2002-12-06
  • 打赏
  • 举报
回复
你就把图像文件打包成字节流,然后到com中用内存文件打开再还原就可以了
或者还可以写成文件,然后打开也一样,不过安全性和灵活性不是太好
flyingjust 2002-12-06
  • 打赏
  • 举报
回复
将图象序列化成内存文件
将内存文件打包成SafeArray数组, IDL中支持SafeArray类型
z_j 2002-12-06
  • 打赏
  • 举报
回复
首先一点,IDL中不可能将MFC类作为参数类型。
要解决这个问题有2种方法:
1 将保存图象数据的地址作为long 传递给接口函数。在接口函数种将该long在转换成 CDIB*
这种做法不是很好,它要求图形数据和接口函数运行在同一个 进程中。否则很容易引起非法操作
2 将图象的数据进行Base64编码,变成一个长长的字符串,以BSTR的形式传递给接口函数,在该接口函数中再进行 Base64解码。
这种方法比较安全,但如果图象数据比较大,进行编码,解码需要一些时间 380K大小的数据编码需要2秒左右。

3,245

社区成员

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

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