我的VC OCX中有 一个接口,这个接口有一个参数是需要返回一个内存文件的,很大,大概有2M左右,现在我想通过VB调用这个接口把这个文件 传递出来,,先是声名接口参数类型为BSTR*,好不容易搞定了,但是传递出来的数据不对,个人感觉他是吧这个2进制的文件流转换成UNICODE了,但是我用VB的STRCONV转换不过来,后来又用VARIANT类型的,但是连内存都不让操作了
1.如何让OCX中传递出来的参数是正确的2进制流,而不是经过unicode转换过来的
2.到底该使用声名数据类型的参数
BSTR*不行,遇到0会截断
用 IStream 接口
up
我用的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的监控录像(DVR)的局域网播放的源程序与控件,想要用ASP.net做一个视频回放的程序(利用他的控件)但不知如下去做,望各位指点。
先搞清楚他们的控件是怎么用的,
然后就直接用好了.
不过,如 ......
VB偶学得不错,现在大一,高三的时候就学VB了,现在学校里都是学C#和VB.NET的兄弟多。。。
偶要转行VB.NET了~当年学VB学了2年,对VB里面的常用函数都十分了解。
Select、If结构、For Next循环、等都了解。。。 ......
就是设计一个计算机模拟考试系统,带有学生和管理员,所以登录窗体和主窗体想分开,登陆学生的显示学生的主窗体,登陆管理员显示管理主窗体,我只会一个窗体用一堆控件,现在享有多个主窗体,不知道怎么做,希望请大 ......
怎么优化查询的效率,比如我想从100万条记录中每次只查询100条记录的话,那么这条sql语句该怎么实现,注意:语言是VBScript的,
http://www.cnblogs.com/anjou/archive/2007/10/17/926944.html
涉及到算法,goog ......
各位大虾:
我有一个VB调用水晶报表的系统,报表是作为一个Design嵌在VB里的,今天发现打印第一张报表正常,同样的数据,在点打印再调用一次就会报 Memory Full的错误,但是 ......