Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med programmeringsspråket C++ kan utvecklare direkt komma åt minnet som lagrar en viss variabel. Minnespekare ger den här direktåtkomsten. I Visual Basic hanteras pekare åt dig. En parameter som deklareras som en pekare till en int i C++ motsvarar till exempel en parameter som deklareras i Visual Basic som en ByRefHeltal.
En parameter som deklareras som sträng i Visual Basic deklareras som en pekare till en BSTR- i C++. Att ange en strängpekare till NULL- i C++ motsvarar att ställa in strängen på vbNullString konstant i Visual Basic. Att skicka en sträng med noll längd ("") till en funktion som är utformad för att ta emot NULL- fungerar inte, eftersom detta skickar en pekare till en sträng med noll längd i stället för en nollpekare.
C++ stöder datacontainrar, nämligen strukturer och fackföreningar, som inte har någon motsvarighet i tidiga versioner av Visual Basic. Därför omsluter COM-objekt vanligtvis information som lagras i strukturer och unioner i objektklasser. Vissa COM-objekt kan dock innehålla strukturer, vilket gör att delar av objektets metoder eller funktioner inte är tillgängliga för Visual Basic.
Vissa C++-datatyper stöds inte i Visual Basic, till exempel osignerade typer och HWND- typer. Metoder som accepterar eller returnerar dessa datatyper är inte tillgängliga i Visual Basic.
Visual Basic använder Automation-kompatibla datatyper som interna datatyper. Därför är C++-datatyper som är Automation-kompatibla också kompatibla med Visual Basic. Datatyper som inte är Automation-kompatibla kanske inte kan konverteras till Visual Basic.
I följande tabell visas de datatyper som stöds av Visual Basic och deras VARTYPE- motsvarigheter. VARTYPE- är en uppräkning som visar Automation-varianttyperna.
| Visual Basic-datatyp | VARTYPE-motsvarighet |
|---|---|
|
Heltal |
16 bitar, signerad, VT_I2 |
|
Lång |
32 bitar, signerad, VT_I4 |
|
datum |
VT_DATE |
|
Valuta |
VT_CY |
|
Objekt |
*VT_DISPATCH |
|
String |
VT_BSTR |
|
Boolean |
VT_BOOL |
|
Valuta |
VT_DECIMAL |
|
enkel |
VT_R4 |
|
Dubbel |
VT_R8 |
|
decimaler |
VT_DECIMAL |
|
byte |
VT_DECIMAL |
|
Variant |
VT_VARIANT |
Alla parametrar i Visual Basic, om de inte är märkta med nyckelordet ByVal, skickas med referens (som pekare) i stället för efter värde.
C++ och Visual Basic skiljer sig något åt i hur de representerar egenskaper. I C++ representeras egenskaperna som en uppsättning accessorfunktioner, en som anger egenskapsvärdet och en som hämtar egenskapsvärdet. I Visual Basic representeras egenskaper som ett enskilt objekt som kan användas för att hämta eller ange egenskapsvärdet.