易截截图软件、单文件、免安装、纯绿色、仅160KB

VC写的一个COM,VB来调用,参数传递有问题

我的VC OCX中有 一个接口,这个接口有一个参数是需要返回一个内存文件的,很大,大概有2M左右,现在我想通过VB调用这个接口把这个文件 传递出来,,先是声名接口参数类型为BSTR*,好不容易搞定了,但是传递出来的数据不对,个人感觉他是吧这个2进制的文件流转换成UNICODE了,但是我用VB的STRCONV转换不过来,后来又用VARIANT类型的,但是连内存都不让操作了


1.如何让OCX中传递出来的参数是正确的2进制流,而不是经过unicode转换过来的
2.到底该使用声名数据类型的参数
BSTR*不行,遇到0会截断
用 IStream 接口

引用
BSTR*不行,遇到0会截断
用 IStream 接口

up

我用的memcpy,截断不截断对我没有影响啊,我刚才用VC测试了一下,没有上述unicode转换的问题,难道VB就这么垃圾???

引用
我用的memcpy,截断不截断对我没有影响啊,我刚才用VC测试了一下,没有上述unicode转换的问题,难道VB就这么垃圾???

问题出在你的接口参数类型,即使你使用了memcpy也一样。

楼上你没有看明白我的意思吧,我用VC已经测试通过了

使用bstr的话,会自动转成unicode的,要么base64一下
或者用VARIANT的SafeArray


base64?在VC里头还是VB里头啊 安全数组这么用啊,能不能具体点,因为ocx的接口参数也就那些,好像没有什么安全数组的类型吧?

base64 编码把二进制转成字符串
VARIANT里的数组在vc时通过safearray使用的,vb怎么用我也不知道,呵呵

vc的safearray操作
long ReviewDocument::getMeasureBinData(VARIANT* aData)
{


相关问答:

asp.net(vb)问题

login.aspx.vb:

    Public ReadOnly Property nameT() As String
        Get
            Return TextBox1.Text
    &nb ......

vb如何调用Illustrator(此前Illustrator未启动)?

请教一下:我用vb写了一个调用Illustrator的测试程序,代码很简单:Private Sub Command1_Click()
Dim app As New Illustrator.Application
Dim doc As Illustrator.Document
Dim thislayer As Illustrator.Layer ......

请好心人帮我把VB源码转为VB.NET~

希望大家能够帮我下.感谢了..


源码传在大米盘 VB6 的源码 http://www.damipan.com/file/3wNoKLW.html

转为VB.NET源码.

小弟完全是新手 不懂的说.麻烦各位帮忙一下

我的EMAIL是:4452 ......

求教下VB如何给D3D游戏写屏 - VB / API

想在warcraft3里进行写屏操作【如对战平台中的胜负提示信息】,效果就像游戏平台中一样,我试过在一窗口中写入文字,然后一直让窗口强制最前,虽然能实现文字显示,但是文字会不断闪烁,而且有不确定BUG,通过论坛搜 ......

vb插入数据库重复值问题

在vb中怎么判断,插入到数据库中的值是重复的,本人才刚接触VB语言,甚是有好多地方还不懂,还请各位大侠们给出代码,谢谢了呀!!!
插入之前select一下阿。
或者写一个组合SQL插入语句,例如
IF not Exist(
& ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号