VC VB OCX传递参数郁闷记

这两天,用VC做了一个OCX,其中有一个接口是需要传递出来一个内存文件的,很大,大概有2M左右,因为VB简单,就用VB来调试这个OCX,在传递参数的时候遇到了麻烦。

1.OCX的接口里头参数类型很奇怪,看了半天觉得靠谱的估计也就是BSTR* VARIANT、VARIANT* 这3个,于是先决定使用BSTR*这个数据类型。

在VB里头我定义了一个String类型的参数,VB的自动提示也是String,BSTR*在VB这里是提示String的,于是就这样传递进去了,但是在VC的OCX中使用memcpy老出错,后来发现原来是VC里头的这个指针有问题,把VC的参数前头加了一个*号,但是还是不行,后来才知道,VB中的字符串在VC里头就内存不足了,于是在VB里头还先得让这个字符串占领一定的位置,于是这样写

dim a as string

a="test"+space(6000000)    '6M的左右大小

如果用这个还不行dim a as string * 1000

因为这个大小有限制,根本不让你分配6M大小的空间

好了现在空间也分了,指针地址也对了,这回总该行了吧,要不说搞IT就是折腾呢,还是不行

为什么?

首先啊,这个指针传递进去的数据值就不对,我发现这个值应该是unicode了,因为每个字符后头都跟了一个00,比如test吧,就变成了t.e.s.t.这个.就是00,因为我是需要把文件传递出来,说以我可以不管这个传进来的是什么东西,我就直接写吧,好了,等写好了,传递到VB里头一看,晕了,也转化成unicode了,我用了strconv这个函数,可惜转换不过来,一个小小的ocx就这么多问题,真是郁闷至极啊!!!!

经过本人不屑的努力和研究,我使用VC做了一个测试程序,居然完全没有上述的问题,为什么VB你要做unicode转换呢,太让我伤心了

1.动画及多媒体播放类 anigif6.ocx 动画播放gif文件控件 gif89.dll 又一个播放gif文件的动态链接库 gifPlayer.ocx 又一个播放gif文件控件 flash.ocx 能播放flash动画文件 Digital.ocx 数码显示数字、时间,挺漂亮 MovingChar.ocx 循环移动的字幕 wmp.ocx 提供的ActiveX控件制作媒体播放器 2.界面元素类 2.1.窗口类 asBubbleForm.ocx 显示图片信息提示的窗体控件,外形似帮助提示,弹出气泡式对话框 2.2.分隔条类 splitbar.ocx 窗口分割控件 2.3.工具条类 vbalExpBar6.ocx 不明,没用过 2.4.按钮类 CurtButton.ocx CurtButton 多风格按钮控件 JwldButn2b.ocx 漂亮的VB按钮,可以随意改变按钮表面和按下去时的边框颜色 SmartXpButton.ocx 一个VC开发的美观的XP按钮播放activeX控件 2.5.选项卡类 tabctl32.ocx 圆角选项卡控件 prjXTab.ocx 又是一款圆角选项卡控件,类似tabctl32.ocx 2.6.列表框类 SBLIST.OCX 界面很酷的列表框控件 vbalIml6.ocx 类似ImageList的图象控件 2.7.菜单类 asAssistantPopup.ocx 弹出管理菜单 2.8.皮肤类 YFSkins.ocx 非常美观的皮肤控件 VBOCX.OCX 允许你的应用程序的标题栏颜色为任意渐变色 3.系统类 asctrls.ocx 系统控件,用来安装active控件的,一般用不着 dmview.ocx 磁盘管理控件 fldrvw71.ocx 目录查看、选择、也可以显示文件,功能很强,但可能需要注册 proctexe.ocx Intel 程序纹理,进程信息查询 shlobj71.ocx 以系统默认的正常形式打开程序 sysmon.ocx 系统性能监视的ActiveX控件 Wxini.ocx 好象是读取ini文件的,没用过 4.内置类(VB或Windows系统自带的) combobox.ocx 下拉选择控件 comct232.ocx Animation1动画和UpDown comctl32.ocx 包含toolbar、treeview、listview、imagelist等(5.0) comdlg32.ocx 对话框 dbgrid32.ocx vb5的数据网格控件 dblist32.ocx vb5的数据列表控件 hhctrl.ocx Microsoft帮助文档界面相关文件 msdxm.ocx 媒体播放 msflxgrd.ocx 数据网格控件 mshflxgd.ocx 数据网格控件,是对msflxgrd.ocx的升级 msscript.ocx ScriptControl控件 mswinsck.ocx 网络通讯控件 richtx32.ocx 富文本框控件,增强文本数据显示 wshom.ocx 是Windows本地脚本对象运行时相关文件 5.未归类 MoveLabel.ocx 不明,没用过 LeftMenu.ocx 不明,没用过 daxctle.ocx 不明,没用过 chklsb26.ocx 好象超级兔子软件用到 ?gktube.ocx 孤独剑漏掉了 ?NewCombo.ocx 孤独剑漏掉了 tdc.ocx 相关表列数据ActiveX控件,没用过
01 , 01.txt 《 VB6.0中通过MSChart控件调用数据库 》 02 , 02.txt 《 用VB6实现动态增减控件 》 03 , 03.txt ActiveX控件的创建 04 , 04.txt ADO控件和DATA控件的冲突(不能共存)的解决方法 05 , 05.txt Combo的自动查询技术 06 , 06.txt DirectX7.0使用心得(1) 07 , 07.txt DirectX7.0使用心得(2) 08 , 08.txt DirectX7.0使用心得(3) 09 , 09.txt FSO对象模型在VB中的应用 10 , 10.txt MsComm 控件的文字传输范例 11 , 11.txt Office或IE4风格的ToolBar 12 , 12.txt Regsvr32.exe注册控件的具体用法 13 , 13.txt TextBox的自动调节 14 , 14.txt TextBox实现打印机效果 15 , 15.txt TreeView的基本操作 16 , 16.txt VB5中DBGRID控件在VB6中使用 17 , 17.txt VB6.0动态加载ActiveX控件漫谈 18 , 18.txt VB与MS-Draw开发通用作图软件 19 , 19.txt VB中APP对象及其应用 20 , 20.txt VB中list控件的功能扩充 21 , 21.txt VB中防止将重复项目添加到列表框控件中 22 , 22.txt VB中用Multimedia MCI控件开发多媒体应用 23 , 23.txt Win Api在VB中的妙用 24 , 24.txt WINDOWS SCRIPT HOST对象在VB中的使用 25 , 25.txt 安装向导生成程序组并建立多个程序项 26 , 26.txt 保存复选框选项 27 , 27.txt 不用OCX来创建自己的控件(一) 28 , 28.txt 成组更新控件属性 29 , 29.txt 创建数据驱动窗体 30 , 30.txt 得到鼠标位置 31 , 31.txt 调整 Combo 下拉部分的宽度 32 , 32.txt 动态加入控件到VB控件数组中 33 , 33.txt 对ListView中的列排序 34 , 34.txt 放一个Combo到Toolbar中 35 , 35.txt 改变 ListIndex而不发生 Click 事
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值