从 C++ 转换为 Visual Basic

使用 C++ 编程语言,开发人员可以直接访问存储特定变量的内存。 内存指针提供此直接访问。 在 Visual Basic 中,将为你处理指针。 例如,在 C++ 中声明为 int 的指针的参数等效于在 Visual Basic 中声明为 ByRefInteger 的参数。

在 Visual Basic 中声明 As String 的参数在 C++ 中声明为指向 BSTR 的指针。 在 C++ 中将字符串指针设置为 NULL 等效于在 Visual Basic 中将字符串设置为 vbNullString 常量。 将零长度字符串 ("") 传递给旨在接收 NULL 的函数不起作用,因为这会将指针传递给零长度字符串而不是零指针。

C++ 支持数据容器,即结构和联合,这些在早期版本的 Visual Basic 中没有等效的数据容器。 因此,COM 对象通常包装通常存储在对象类的结构和联合中的信息。 但是,某些 COM 对象可能包含结构,导致 Visual Basic 无法访问对象的部分方法或功能。

Visual Basic 中不支持某些 C++ 数据类型,例如无符号类型和 HWND 类型。 接受或返回这些数据类型的方法在 Visual Basic 中不可用。

Visual Basic 使用与 Automation 兼容的数据类型作为其内部数据类型。 因此,与 Automation 兼容的 C++ 数据类型也与 Visual Basic 兼容。 与 Automation 不兼容的数据类型可能无法转换为 Visual Basic。

下表列出了 Visual Basic 支持的数据类型及其 VARTYPE 等效数据类型。 VARTYPE 是一个列举 Automation 变量类型的枚举。

Visual Basic 数据类型 VARTYPE 等效项
整数
16 位、已签名、VT_I2
Long
32 位、已签名、VT_I4
日期
VT_DATE
货币
VT_CY
对象
*VT_DISPATCH
字符串
VT_BSTR
布尔值
VT_BOOL
货币
VT_DECIMAL
Single
VT_R4
双精度
VT_R8
十进制
VT_DECIMAL
Byte
VT_DECIMAL
变量
VT_VARIANT

Visual Basic 中的所有参数,除非用关键字 ByVal 标记,否则都是通过引用(作为指针)而不是通过值传递的。

C++ 和 Visual Basic 在属性表示方式上略有不同。 在 C++ 中,属性表示为一组访问器函数,一个用于设置属性值,一个用于检索属性值。 在 Visual Basic 中,属性表示为可用于检索或设置属性值的单个项。

转换为 Visual Basic