Freigeben über


Übersetzen von C++ in Visual Basic

Mit der Programmiersprache C++ können Entwickler direkt auf den Arbeitsspeicher zugreifen, in dem eine bestimmte Variable gespeichert ist. Speicherzeiger bieten diesen direkten Zugriff. In Visual Basic werden Zeiger für Sie behandelt. Beispielsweise entspricht ein Parameter, der als Zeiger auf ein int in C++ deklariert wird, einem Parameter, der in Visual Basic als ByRefInteger deklariert wird.

Ein Parameter, der in Visual Basic als Zeichenfolge deklariert ist, wird als Zeiger auf einen BSTR in C++ deklariert. Das Festlegen eines Zeichenfolgenzeigers auf NULL in C++ entspricht dem Festlegen der Zeichenfolge auf die vbNullString-Konstante in Visual Basic. Das Übergeben einer Zeichenfolge der Länge null ("") an eine Funktion, die zum Empfangen von NULL entwickelt wurde, funktioniert nicht, da dadurch anstelle eines Nullzeigers ein Zeiger auf eine Zeichenfolge der Länge Null übergeben wird.

C++ unterstützt Datencontainer, insbesondere Strukturen und Unions, die in frühen Versionen von Visual Basic keine Entsprechung aufweisen. Aus diesem Grund umschließen COM-Objekte in der Regel Informationen, die in der Regel in Strukturen und Unions in Objektklassen gespeichert werden. Einige COM-Objekte können jedoch Strukturen enthalten, sodass Teile der Methoden oder Funktionen des Objekts für Visual Basic nicht zugänglich sind.

Einige C++-Datentypen werden in Visual Basic nicht unterstützt, z. B. nicht signierte Typen und HWND-Typen . Methoden, die diese Datentypen akzeptieren oder zurückgeben, sind in Visual Basic nicht verfügbar.

Visual Basic verwendet Automation-kompatible Datentypen als interne Datentypen. Daher sind C++-Datentypen, die mit Automation kompatibel sind, auch mit Visual Basic kompatibel. Datentypen, die nicht mit Automation kompatibel sind, können möglicherweise nicht in Visual Basic konvertiert werden.

In der folgenden Tabelle sind die Datentypen aufgeführt, die von Visual Basic und den zugehörigen VARTYPE-Entsprechungen unterstützt werden. VARTYPE ist eine Enumeration, die die Automation-Variantentypen auflistet.

Datentyp in Visual Basic VARTYPE-Entsprechung
Integer
16 Bit, signiert, VT_I2
Long
32 Bit, signiert, VT_I4
Datum
VT_DATE
Währung
VT_CY
Object
*VT_DISPATCH
String
VT_BSTR
Boolean
VT_BOOL
Währung
VT_DECIMAL
Single
VT_R4
Double
VT_R8
Decimal
VT_DECIMAL
Byte
VT_DECIMAL
Variant
VT_VARIANT

Alle Parameter in Visual Basic, sofern sie nicht mit dem Schlüsselwort (keyword) ByVal bezeichnet sind, werden als Verweis (als Zeiger) statt nach Wert übergeben.

C++ und Visual Basic unterscheiden sich geringfügig in der Darstellung von Eigenschaften. In C++ werden Eigenschaften als Eine Gruppe von Accessorfunktionen dargestellt, die den Eigenschaftswert und eine, die den Eigenschaftswert abruft. In Visual Basic werden Eigenschaften als einzelnes Element dargestellt, das zum Abrufen oder Festlegen des Eigenschaftswerts verwendet werden kann.

Übersetzen in Visual Basic