Visual Studio 6 советов и подсказок
Некоторым из нас непременно придется поддерживать "устаревший" код, используя Microsoft Visual Studio 6.0 IDE, которые, хотя мнения могут отличаться, обычно считаются менее удобными для пользователя по сравнению с более поздними воплощениями серии IDE Visual Studio.
Поэтому я хотел бы услышать о некоторых из ваших лучших скрытых / плохо документированных возможностей IDE (может быть для C++ или VB). Как обычно, используйте одну функцию на пост, пожалуйста.
14 ответов
В прошлый раз, когда мне приходилось использовать VB6, я хотел выпрыгнуть из своей кожи в гневе, потому что колесо прокрутки на моей мыши, которое буквально работает с любой другой программой в Windows, не работало. Это как-то связано с возрастом VB6 и тем, как Microsoft с годами изменила функциональность колеса прокрутки.
Этот парень написал программу, чтобы она работала.
(и, похоже, за годы, прошедшие с тех пор, как Microsoft исправила это)
Для VB6 MZ-Tools - фантастическая бесплатная надстройка. Мои любимые функции - это функция поиска и возможность находить всех абонентов данной подпрограммы одним нажатием кнопки. Он также имеет несколько других функций, некоторые из которых я нашел полезными в некоторых случаях.
Пользовательские шаблоны кода в VB6
Я не знаю, является ли это действительно "скрытой" функцией или нет, но всегда думал, что это хорошая экономия времени.
Вы можете создавать свои собственные шаблоны для классов, модулей, форм и т. Д. И делать их доступными в среде IDE. Например, я обычно люблю использовать строго типизированный Collection
классы в моем коде VB6. Так что я мог бы хотеть FooCollection
что держит Foo
объекты и ничего больше, вместо старого Collection
, Я не хочу переопределять Collection
интерфейс каждый раз, когда мне нужен новый строго типизированный Collection
Таким образом, я создал новый шаблон класса, который содержал всю плиту Collection
код. Теперь, когда я иду, чтобы добавить новый модуль класса в свой проект, мой пользовательский TypedCollection
Шаблон доступен в качестве опции. Тогда я просто переименую новый класс FooCollection
и заменить все вхождения "As Object" на "As Foo" (где Foo - тип объекта, который я хочу сохранить в коллекции), и все готово.
Следуя моему примеру с шаблоном класса, вот что вы делаете:
- Откройте IDE и запустите новый проект (я обычно просто делаю Standard EXE, потому что не имеет значения, что вы здесь выбираете).
- Добавьте новый класс в проект. Это станет вашим шаблоном.
- Код вашего шаблона класса. По сути, просто напишите любой код, который вы хотели бы использовать в других проектах. Это прямой код VB, ничего особенного.
- Когда вы закончите, сохраните файл в своем
C:\Program Files\Microsoft Visual Studio\VB6\Template\Classes
папка (Примечание: другие подпапки, такие какForms
и т. д. для других видов шаблонов). Имя файла.cls за вычетом расширения - это то, что будет отображаться в IDE, поэтому я обычно включаю пробелы в имя файла для удобства чтения. - В следующий раз вы откроете свою IDE и нажмете
Project->Add Class Module
, ваш шаблон класса появится в списке доступных шаблонов классов.
Вы можете редактировать файл C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\AUTOEXP.DAT
добавить правила для отображения значимых значений ваших пользовательских классов в окне отладки.
Я имею в виду это. У нас есть структура даты, определенная следующим образом:
typedef struct tagMHDATE
{
short int nDay; // Day of the Month 1..31
short int nMonth; // Month of the Year 1..12
short int nYear; // Year
} MHDATE, FAR *LPMHDATE;
Если у меня есть этот код:
MHDATE today;
GetDate(&today);
... и бросить today
в окне просмотра я увижу что-то вроде этого:
today {...}
Теперь иди и добавь это в конец AUTOEXP.DAT (это просто текстовый файл)
tagMHDATE=date=<nMonth>/<nDay>/<nYear>
... и теперь я вижу это в окне Watch:
today {date=10/8/2008}
Функция Erl в VB6. Если вы введете номера строк в свой код VB6, вы можете в обработчике ошибок получить доступ к номеру строки, в которой произошла ошибка, через возвращаемое значение функции Erl.
Я начну с функции VS C++, которая сэкономила мне много времени: добавление ",su" (без кавычек) к строке юникода в окне просмотра отладчика позволяет вам просмотреть значение строки (а не адрес памяти этой строки)
Здесь довольно много советов и подсказок. Мой любимый размещает @err,hr
в окне просмотра, чтобы получить сообщения об ошибках.
Измените свойство "Начать с" в ярлыке, который вы используете для запуска VB6, в корневой каталог вашего исходного кода. Это позволит сэкономить много потерянных щелчков мыши при каждом открытии проекта в среде IDE.
Для VC6 получите копию Visual Assist X от Whole Tomato. Он содержит умную (и полезную) замену Intellisense, намного более богатую раскраску кода, некоторую поддержку рефакторинга и многие другие функции. Определенно стоит вложений.
CodeShine: надстройка рефакторинга кода VB6 (бесплатно). Включает рефакторинги, такие как метод извлечения, введение объясняющей переменной, функция извлечения, введение поясняющей переменной, переименование и т. Д.
Быстрые макросы всегда были моим личным фаворитом; не совсем скрытая функция как таковая, но очень полезная, и VC6 была последней версией, где они были достаточно быстры, чтобы быть полезными (до того, как MS переписала механизм макросов для использования.NET).
На самом деле это не особенность среды IDE VB6, но если вам нужно заполнить несвязанный просмотр списка большим количеством данных, то, делая его невидимым в процессе заполнения, вы можете ускорить его в 10 раз.
Мой ответ на вопрос "Если вы не удовлетворены ответами на чужой вопрос, стоит ли начинать свой?" показывает, как предварительно заполнить VC++ всеми вашими исходными путями. Это полезно для тех из нас, кто строит из командной строки, но отлаживает с помощью msdev.