vb6 0-VB6和.net2012关于变体类型Variant差异。

问题描述

VB6和.net2012关于变体类型Variant差异。

在VB6中调用C++DLL:

Dim sndData‘缺省类型,自动默认为Variant/empty

sndData=data’data为一个二进制数组,赋值结束后sndData的类型自动变为Variant/byte(0 to 65)

Result=Msocket.sendto(sndData)'C++接收类型为Variant。

以上代码正常。

在在.net2012中同样情况:

Dim sndData As Object‘这里不支持缺省了。
sndData=VB6.copyArray(data)’这里升级也自动变了。不支持直等了。看sndData类型只显示Object,值跟VB6一样。

Result=Msocket.sendto(sndData)'_报错:类型不一致。_

请问:我该如何在.net2012中定义能够与VB6.0保持一致,让我能够传的参数能够让变体类型参数接收?
2012中的Object类型等同于VB6的缺省类型吗?

解决方案

object等同variant,但是内置的数组不兼容。

解决方案二:

C++那边的的实现代码(用于判断是传值还是传引用)以及VB.Net里面Msocket.sendto和VB6.copyArray两个方法的声明都没有,无法判断。

时间: 2024-11-05 06:31:12

vb6 0-VB6和.net2012关于变体类型Variant差异。的相关文章

c++-.NET2012 object型的byte数组,作为参数,传给C++DLL封装的一个变体类型

问题描述 .NET2012 object型的byte数组,作为参数,传给C++DLL封装的一个变体类型 VB2012: 调用C++DLL,传入参数为一个二进制byte数组. c++: 接收参数类型为variant 报类型不一致错误. 请问.net能不能把byte型char数组,传给C++dll中封装的变体类型参数? 注:vb6可以实现.2012报错. 解决方案 byte型char数组是什么?byte就是byte,char就是char

变体(Variant)与Dispatch调用(IDispatch)

变体(Variant) Variant类型理论上可以存放任何类型的数据,这也是中文很多 人称之为"变体"的原因.对于C++这种强类型语言的程序员来说,存在变体 (Variant)这样的类型是奇怪的.但是对于哪些淡化类型概念的语言(如Visual Basic等) 来说,Variant是它们默认的类型.在VB中,如果没有用As语句声明变量,那么这个变量就是 Variant类型的.对于C++程序员来说,Variant不过是一个超复杂的结构体: typedef /* [wire_marshal

VB6.0中For语句的两种用法,如何用第二种用法遍历一个数组?

问题描述 VB6.0中For语句的两种用法,如何用第二种用法遍历一个数组? VB6.0中For语句的两种用法,如何用第二种用法遍历一个数组? 解决方案 正序 for i = lbound(arr) to ubound(arr) arr(i) next 逆序 for i = ubound(arr) to lbound(arr) step -1 arr(i) next 解决方案二: 一个加密解密函数 for vb6.0!VB6.0中的编译预处理--#IF语句

vb6.0 能在代码编辑器左边显示行号吗?

问题描述 vb6.0能在代码编辑器左边显示行号吗? 解决方案 解决方案二:要是能的话,怎么操作,在这说声谢谢了解决方案三:VB6.0没有用过,但是VB.NET到用过.应该都差不多.可以用2个RichTextBox,一个显示行号,一个就作为正常的编辑器即可.然后在正常编辑器的RichTextBox里的文本更改函数与滚动条竖直滚动的事件里,写入计算行数的相关代码即可.解决方案四:如果你说的是在IDE里面启用显示行号的话,那么答案是不能.解决方案五:还别说,真没找到显示行的选项.不过调试运行后出错了会

vb6-求大神解答VB6.0自适应大小问题

问题描述 求大神解答VB6.0自适应大小问题 控件自适应大小已实现,但是textbox中字体自适应大小出现问题.label和commandbutton用同样代码皆正常,只有textbox字体变大后再缩小时height不会缩小.不改变字体大小只变height没有问题,而不变height只变字体大小也有类似问题.请问是不是其height属性与使用过的最大字体之间有关联性? 解决方案 只有textbox字体变大后再缩小时height不会缩小.不改变字体大小只变height没有问题 你可以在每次缩放前把

有关VB6.0语言调用DLL接口的问题

问题描述 有关VB6.0语言调用DLL接口的问题 VB语言定义的Type是不是就是C++的结构体,如何获取Type中的内存分配指针呢? 解决方案 http://blog.csdn.net/sjrhero/article/details/6732068 解决方案二: VB6.0调用WEBService问题VB6.0调用WEBService问题

vb6.0如何实现与数据库的连接?

问题描述 vb6.0如何实现与数据库的连接? 用VB做了一个程序,在登录基本信息这一界面的时候要把信息保存在数据库里 解决方案 vb6.0通过控件来连接远程sql数据库 解决方案二: 好几年前写过VB6.0的代码,回头给你找找

VB6.0语言Label双击变成文本框,文本框离开变成LabelLabel双击变成文本框

问题描述 VB6.0语言Label双击变成文本框,文本框离开变成LabelLabel双击变成文本框 Label双击变成文本框,文本框离开变成LabelLabel双击变成文本框,文本框离开变成Label 解决方案 可以做一个label一个textbox叠放在一起,然后设置zorder来设置谁在前面. 解决方案二: 不清楚你描述的是什么问题 解决方案三: 我来帮LZ完善需求描述!!!双击Label的时候,Label控件变成文本框(也就是出现一个文本框和Label控件一样大小的,在Label的位置上)

webservice系列教学(9)-如何调用webservice(vb6.0,vbscript)

vbscript|web 4.8使用vb6.0调用需下载msSoapToolkit20.exe添加引用:Microsoft Soap Type Library 位置:"C:\Program Files\Common Files\MSSoap\Binaries\ MSSOAP1.dll"    调用方法:    Dim cc As New MSSOAPLib.SoapClient    例程:    新建工程标准EXE添加3个textbox控件,text1,text2,text3添