实验:向控件接口传递字节流和由Ocx返回字节流给调用方

开始在工程中是传PBYTE pucStream和DWORD dwLenStream, 后来发现, 在控件中得到的数据长度虽然相同,但是内容却变了,因为传递的流有1M~2M, 前面 70~100字节都是相同的, 后面内容的就不同了.


找到篇资料, 可以解决从exe向ocx传递ByteStream的问题.

http://www.codeproject.com/KB/edit/hexeditor.aspx?bmkres=success


从这篇资料中找到的exe和控件之间传递字节流的用法,在实际工程中用过了,有效.


写个实验工程总结一下, 放2个接口.

1. 字节流方向 exe to ocx.

1. 字节流方向 ocx to exe.


在实际工程中,传递的是文件流, 1~4M正常。在这个实验中,定位传递的文件流大小为20M, 应该能验证这种方法传递大型字节流的正确性.

 

先写了个程序,迁移了Demo原有的功能, 调用了控件, 实现了16进制文件的打开,编辑,保存.

控件本身的代码再研究, 16进制编辑的显示效果不如UltraEdit, 要改下控件的代码, 向UltraEdit靠齐.


工程下载点:

http://download.csdn.net/source/3021318
srcHexEditorModify_16进制文件编辑器_2011_0214_1307

 

<2011_0214_1921>

做了个实验, 验证由Dll返回字节流给调用方

做这个实验的目的: 按照正常的调用, 如果Ocx或DLL返回长度未知的Buffer, 需要先查寻Buffer长度. 然后开辟空间, 再去真正的去执行返回Buffer的操作. 按照上面的资料, 使用COleSafeArray, 一次性的执行返回Buffer操作, 省去了一道手续.

 

调用方代码:

DLL方代码:

 

<2011_0215_1005>

工程下载点:

http://download.csdn.net/source/3022002

src防止跨进程删除无效指针_EXE和DLL互相传递字节流_V2011_0214_1945

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值