Visual Studio 6 советы и рекомендации

Некоторым из нас неизменно придется поддерживать "устаревший" код с использованием сред Microsoft IDE Visual Studio 6.0, которые, хотя мнения будут отличаться, обычно считаются менее удобными для пользователей по сравнению с более поздними воплощениями серии IDE Visual Studio.

Итак, я хотел бы услышать о ваших лучших скрытых/плохо документированных функциях IDE (может быть для С++ или VB). Как обычно, одна функция за сообщение, пожалуйста.

Ответ 1

В прошлый раз, когда мне приходилось использовать VB6, я хотел выпрыгнуть из своей кожи в гневе, потому что колесо прокрутки на моей мыши, которое буквально работает с любой другой программой в Windows, не работало, Это как-то связано с возрастом VB6 и тем, как Microsoft изменила функциональность колесика прокрутки на протяжении многих лет.

Этот парень написал программу, чтобы заставить ее работать.

(и похоже, что с тех пор, как Microsoft сделал исправление)

Ответ 2

Для VB6 MZ-Tools - фантастическая бесплатная надстройка. Моими любимыми функциями являются функция поиска и возможность поиска всех вызывающих абонентов данной процедуры одним нажатием кнопки. Он также имеет несколько других функций, некоторые из которых я нашел полезными иногда.

Ответ 3

Пользовательские шаблоны кода в VB6

Я не знаю, действительно ли это "скрытая" функция, но всегда считала, что это приятная экономия времени.

Вы можете создать свои собственные шаблоны для классов, модулей, форм и т.д. и сделать их доступными в среде IDE. Например, мне обычно нравится использовать строго типизированные классы Collection в моем коде VB6. Поэтому мне может понадобиться FooCollection, который содержит объекты Foo и ничего больше, вместо простого старого Collection. Я не хочу переопределять интерфейс Collection каждый раз, когда мне нужен новый сильно типизированный Collection, поэтому я создал новый шаблон класса, содержащий весь код котельной Collection. Теперь, когда я иду добавить новый модуль класса в свой проект, мой пользовательский шаблон TypedCollection доступен в качестве опции. Затем я просто переименую недавно добавленный класс FooCollection и заменим все вхождения "As Object" на "As Foo" (где Foo - тип объекта, который я хочу сохранить в коллекции), и я закончил.

Сохранение с помощью моего шаблона шаблона примера, вот что вы делаете:

  • Откройте IDE и запустите новый проект (обычно я просто делаю стандартный EXE, потому что на самом деле не важно, что вы здесь выбираете).
  • Добавить новый класс в проект. Это станет вашим шаблоном.
  • Введите свой шаблонный класс. В основном просто напишите код котельной, который вы хотели бы использовать в других проектах. Это прямой код VB, ничего особенного.
  • Когда вы закончите сохранять файл в своей папке C:\Program Files\Microsoft Visual Studio\VB6\Template\Classes (Примечание: другие подпапки, такие как Forms и т.д., предназначены для других типов шаблонов). Имя файла .cls за вычетом расширения - это то, что появится в среде IDE, поэтому я обычно включаю пробелы в имя файла для удобства чтения.
  • В следующий раз, когда вы откроете свою IDE и нажмите Project->Add Class Module, ваш шаблонный класс появится в списке доступных шаблонов классов.

Ответ 4

Вы можете отредактировать файл 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}

Ответ 5

Я ударю это с функции VS С++, которая сэкономила мне много времени: добавление ", su" (без кавычек) в строку юникода в окне просмотра отладчика позволяет вам увидеть значение строка (а не адрес памяти этой строки)

Ответ 6

Функция Erl в VB6. Если вы поместите номера строк в свой код VB6, вы можете в своем обработчике ошибок получить доступ к номеру строки, с которой произошла ваша ошибка, с помощью возвращаемого значения функции Erl.

Ответ 7

Здесь есть несколько советов и трюков здесь. Мой любимый кладет @err,hr в окне "Часы", чтобы получить сообщения об ошибках.

Ответ 8

Для VC6 получите копию Visual Assist X от Whole Tomato. Он содержит умную (и полезную) замену Intellisense, гораздо более насыщенную окраску кода, некоторую поддержку рефакторинга и многие другие функции. Наиболее определенно стоит инвестиции.

Ответ 9

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

Ответ 10

CodeShine: надстройка рефакторинга кода VB6 (бесплатно). Включает рефакторинг, такой как метод извлечения, введение объясняющей переменной, извлечения функции, введение объясняющей переменной, переименование и т.д.

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

Ответ 11

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

Ответ 12

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

Ответ 14

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