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 - тип объекта, который я хочу сохранить в коллекции), и все готово.

Следуя моему примеру с шаблоном класса, вот что вы делаете:

  1. Откройте IDE и запустите новый проект (я обычно просто делаю Standard EXE, потому что не имеет значения, что вы здесь выбираете).
  2. Добавьте новый класс в проект. Это станет вашим шаблоном.
  3. Код вашего шаблона класса. По сути, просто напишите любой код, который вы хотели бы использовать в других проектах. Это прямой код VB, ничего особенного.
  4. Когда вы закончите, сохраните файл в своем C:\Program Files\Microsoft Visual Studio\VB6\Template\Classes папка (Примечание: другие подпапки, такие как Formsи т. д. для других видов шаблонов). Имя файла.cls за вычетом расширения - это то, что будет отображаться в IDE, поэтому я обычно включаю пробелы в имя файла для удобства чтения.
  5. В следующий раз вы откроете свою 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 (бесплатно). Включает рефакторинги, такие как метод извлечения, введение объясняющей переменной, функция извлечения, введение поясняющей переменной, переименование и т. Д.

http://www.wsdesigns.com/CodeShine/default.htm

Быстрые макросы всегда были моим личным фаворитом; не совсем скрытая функция как таковая, но очень полезная, и VC6 была последней версией, где они были достаточно быстры, чтобы быть полезными (до того, как MS переписала механизм макросов для использования.NET).

Shift-Alt-Enter, чтобы увеличить размер окна редактора

На самом деле это не особенность среды IDE VB6, но если вам нужно заполнить несвязанный просмотр списка большим количеством данных, то, делая его невидимым в процессе заполнения, вы можете ускорить его в 10 раз.

Мой ответ на вопрос "Если вы не удовлетворены ответами на чужой вопрос, стоит ли начинать свой?" показывает, как предварительно заполнить VC++ всеми вашими исходными путями. Это полезно для тех из нас, кто строит из командной строки, но отлаживает с помощью msdev.

Другие вопросы по тегам