Псевдоним типа VB6 для длинных - PullRequest
2 голосов
/ 28 января 2012

Есть ли способ сделать псевдоним типа на долго в VB6?Я знаю, что вы можете определять пользовательские типы как структуры, но мне нужно что-то похожее на

typedef int mytypename;

в C, где я просто называю простой тип

Ответы [ 2 ]

4 голосов
/ 29 января 2012

Вы можете реализовать такие typedef только в пользовательской библиотеке типов, которая может использоваться VB6.

Например, OLE_COLOR, OLE_HANDLE являются открытыми определениями типа, объявленными в stdole.tlb и готовыми к использованию в VB6.как в Dim clr As OLE_COLOR эквивалентно Dim clr As Long.

1 голос
/ 30 января 2012

Единственная реальная цель этого в C - поддерживать переносимость.Стандарт C не говорит вам точно, какой размер различных числовых типов будет на всех поддерживаемых архитектурах, он просто сообщает вам минимальный размер.Таким образом, поскольку вам может потребоваться изменить базовый тип реализации, вы используете typedef и понятное имя для кода.

Это не относится к VB 6. Размер всех встроенных типов четко определен и гарантированно не изменится.Это часть спецификации VB 6.Так что на самом деле не так уж много нужно для typedef или его эквивалента.

Полагаю, некоторые люди используют typedef s в C для удобства чтения, но я не покупаю это использование.Если это целочисленный тип, используйте целочисленный тип соответствующего размера.Нет реальной выгоды для читабельности:

typedef int ProductKey;

Единственный случай, когда это имеет смысл, - это если вы определяете новый, полноценный тип, такой как цвет.Но в этом случае программисты на C обычно используют typedef для определения типа цвета в терминах целочисленного типа для экономии места и памяти.

Опять же, это не имеет значения в VB 6, потому что вы этого не делаетепрежде всего, пишите код на VB 6, если вы заботитесь об экономном использовании памяти и максимальной скорости.Существует гораздо больше преимуществ для создания структуры (определяемого пользователем типа) или даже класса, который представляет тип цвета, а затем вместо этого используется , что , в вашем коде.Таким образом, вы получаете все преимущества читабельности и типобезопасности (это то, что вы не получаете в C с typedef).Если вы хотите реализовать тип Color под капотом как Long, это ваше дело.

...