Traduzindo para Visual Basic a partir de C++
Usando a linguagem de programação C++, os desenvolvedores podem acessar diretamente a memória que armazena uma determinada variável. Os ponteiros de memória fornecem esse acesso direto. No Visual Basic, ponteiros são manipulados para você. Por exemplo, um parâmetro declarado como um ponteiro para um int em C++ é equivalente a um parâmetro declarado no Visual Basic como um ByRefInteger.
Um parâmetro que é declarado como sequência de caracteres no Visual Basic é declarado como um ponteiro para um BSTR em C++. Definir um ponteiro de cadeia de caracteres para NULL em C++ é equivalente a definir a cadeia de caracteres para a constante vbNullString no Visual Basic. Passar uma cadeia de caracteres de comprimento zero ("") para uma função projetada para receber NULL não funciona, pois isso passa um ponteiro para uma cadeia de caracteres de comprimento zero em vez de um ponteiro zero.
C++ oferece suporte a contêineres de dados, ou seja, estruturas e uniões, que não têm equivalente em versões anteriores do Visual Basic. Por esse motivo, os objetos COM normalmente encapsulam informações que geralmente são armazenadas em estruturas e uniões em classes de objeto. Alguns objetos COM, no entanto, podem conter estruturas, fazendo com que partes dos métodos ou funcionalidade do objeto sejam inacessíveis ao Visual Basic.
Alguns tipos de dados C++ não são suportados no Visual Basic, por exemplo, tipos não assinados e tipos HWND . Métodos que aceitam ou retornam esses tipos de dados não estão disponíveis no Visual Basic.
Visual Basic usa tipos de dados compatíveis com automação como seus tipos de dados internos. Assim, tipos de dados C++ que são compatíveis com automação também são compatíveis com o Visual Basic. Tipos de dados que não são compatíveis com automação podem não ser capazes de ser convertidos em Visual Basic.
A tabela a seguir lista os tipos de dados são suportados pelo Visual Basic e seus equivalentes VARTYPE . VARTYPE é uma enumeração que lista os tipos de variante de automação.
Tipo de dados do Visual Basic | Equivalente VARTYPE |
---|---|
Inteiro |
16 bits, assinado, VT_I2 |
Longo |
32 bits, assinado, VT_I4 |
Data |
VT_DATE |
Moeda |
VT_CY |
Objeto |
*VT_DISPATCH |
Cadeia de caracteres |
VT_BSTR |
Booliano |
VT_BOOL |
Moeda |
VT_DECIMAL |
Single |
VT_R4 |
Double |
VT_R8 |
Decimal |
VT_DECIMAL |
Byte |
VT_DECIMAL |
Variante |
VT_VARIANT |
Todos os parâmetros no Visual Basic, a menos que rotulados com a palavra-chave ByVal, são passados por referência (como ponteiros) em vez de por valor.
C++ e Visual Basic diferem ligeiramente em como eles representam propriedades. Em C++, as propriedades são representadas como um conjunto de funções de acessador, uma que define o valor da propriedade e outra que recupera o valor da propriedade. No Visual Basic, as propriedades são representadas como um único item que pode ser usado para recuperar ou definir o valor da propriedade.