Condividi tramite


Conversione in Visual Basic da C++

Usando il linguaggio di programmazione C++, gli sviluppatori possono accedere direttamente alla memoria che archivia una determinata variabile. I puntatori alla memoria forniscono questo accesso diretto. In Visual Basic i puntatori vengono gestiti automaticamente. Ad esempio, un parametro dichiarato come puntatore a un valore int in C++ equivale a un parametro dichiarato in Visual Basic come Valore Intero ByRef.

Un parametro dichiarato come stringa in Visual Basic viene dichiarato come puntatore a un BSTR in C++. L'impostazione di un puntatore di stringa su NULL in C++ equivale all'impostazione della stringa sulla costante vbNullString in Visual Basic. Il passaggio di una stringa di lunghezza zero ("") a una funzione progettata per ricevere NULL non funziona, perché passa un puntatore a una stringa di lunghezza zero anziché un puntatore zero.

C++ supporta contenitori di dati, ovvero strutture e unioni, che non hanno equivalenti nelle versioni precedenti di Visual Basic. Per questo motivo, gli oggetti COM in genere incapsulano le informazioni che in genere vengono archiviate in strutture e unioni nelle classi oggetto. Alcuni oggetti COM, tuttavia, possono contenere strutture, causando l'inaccessibilità di parti dei metodi o delle funzionalità dell'oggetto a Visual Basic.

Alcuni tipi di dati C++ non sono supportati in Visual Basic, ad esempio tipi non firmati e tipi HWND . I metodi che accettano o restituiscono questi tipi di dati non sono disponibili in Visual Basic.

Visual Basic usa tipi di dati compatibili con Automazione come tipi di dati interni. I tipi di dati C++ compatibili con Automazione sono quindi compatibili anche con Visual Basic. I tipi di dati non compatibili con Automazione potrebbero non essere in grado di essere convertiti in Visual Basic.

Nella tabella seguente sono elencati i tipi di dati supportati da Visual Basic e dai relativi equivalenti VARTYPE . VARTYPE è un'enumerazione che elenca i tipi varianti di Automazione.

Tipo di dati di Visual Basic Equivalente VARTYPE
Integer
16 bit, con segno, VT_I2
Long
32 bit, con segno, VT_I4
Data
VT_DATE
Valuta
VT_CY
Object
*VT_DISPATCH
Stringa
VT_BSTR
Booleano
VT_BOOL
Valuta
VT_DECIMAL
Singolo
VT_R4
Double
VT_R8
Decimale
VT_DECIMAL
Byte
VT_DECIMAL
Variant
VT_VARIANT

Tutti i parametri in Visual Basic, a meno che non siano etichettati con la parola chiave ByVal, vengano passati per riferimento (come puntatori) anziché per valore.

C++ e Visual Basic differiscono leggermente in modo da rappresentare le proprietà. In C++, le proprietà sono rappresentate come un set di funzioni di accesso, una che imposta il valore della proprietà e una che recupera il valore della proprietà. In Visual Basic le proprietà vengono rappresentate come un singolo elemento che può essere utilizzato per recuperare o impostare il valore della proprietà.

Conversione in Visual Basic