Traduzindo para C++ de Visual Basic

Visual Basic manipula os ponteiros implicitamente. No C++, seu aplicativo é responsável por executar qualquer aritmética de ponteiro necessária.

Por padrão, Visual Basic passa parâmetros por referência (como ponteiros). Os parâmetros que devem ser passados por valor são especificados apenas pela palavra-chave ByVal. Por exemplo, um parâmetro ByValInteger em Visual Basic é equivalente a um parâmetro short no C++, enquanto um parâmetro ByRefInteger em Visual Basic é equivalente a um parâmetro short*.

Um parâmetro declarado As String em Visual Basic é declarado como um ponteiro para um BSTR no C++. Definir um ponteiro de cadeia de caracteres como NULL no C++ é equivalente a definir a cadeia de caracteres para a constante vbNullString em 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++ e Visual Basic diferem ligeiramente na forma como representam as propriedades. No 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. Em Visual Basic, as propriedades são representadas como um único item que pode ser usado para recuperar ou definir o valor da propriedade.

Traduzindo para C++