Перевод в Visual Basic из C++

С помощью языка программирования C++ разработчики могут напрямую получить доступ к памяти, в которой хранится определенная переменная. Указатели памяти предоставляют этот прямой доступ. В Visual Basic указатели обрабатываются для вас. Например, параметр, объявленный как указатель на int в C++, эквивалентен параметру, объявленному в Visual Basic в виде целого числа ByRef.

Параметр, объявленный как строка в Visual Basic, объявляется как указатель на BSTR в C++. Установка указателя строки на NULL в C++ эквивалентна настройке строки константы vbNullString в Visual Basic. Передача строки нулевой длины ("") функции, предназначенной для получения NULL , не работает, так как это передает указатель на строку нулевой длины вместо нулевого указателя.

C++ поддерживает контейнеры данных, а именно структуры и объединения, которые не имеют эквивалента в ранних версиях Visual Basic. По этой причине COM-объекты обычно упаковывают сведения, которые обычно хранятся в структурах и объединениях в классах объектов. Однако некоторые com-объекты могут содержать структуры, что приводит к недоступности элементов методов или функций объекта в Visual Basic.

Некоторые типы данных C++ не поддерживаются в Visual Basic, например неподписанные типы и типы HWND . Методы, принимаюющие или возвращающие эти типы данных, недоступны в Visual Basic.

Visual Basic использует типы данных, совместимые с автоматизацией, в качестве внутренних типов данных. Таким образом, типы данных C++, совместимые с автоматизацией, также совместимы с Visual Basic. Типы данных, несовместимые с автоматизацией, могут не быть преобразованы в Visual Basic.

В следующей таблице перечислены типы данных, поддерживаемые Visual Basic и их эквивалентами VARTYPE . VARTYPE — это перечисление, которое содержит типы вариантов службы автоматизации.

Тип данных Visual Basic Эквивалент VARTYPE
Целое число
16 бит, подписанный, VT_I2
Long
32-разрядная, подписанная, VT_I4
Дата
VT_DATE
Валюта
VT_CY
Объект
*VT_DISPATCH
String
VT_BSTR
Boolean
VT_BOOL.
Валюта
VT_DECIMAL
Один
VT_R4
Двойной
VT_R8
Десятичное число
VT_DECIMAL
Byte
VT_DECIMAL
Variant
VT_VARIANT

Все параметры в Visual Basic, если они не помечены ключевое слово ByVal, передаются по ссылке (как указатели) вместо значения.

C++ и Visual Basic немного отличаются в том, как они представляют свойства. В C++свойства представляются как набор функций доступа, который задает значение свойства и значение свойства, которое извлекает значение свойства. В Visual Basic свойства представлены как один элемент, который можно использовать для получения или задания значения свойства.

Перевод в Visual Basic