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, чтобы увеличить размер окна редактора
Ответ 13
Мой ответ на вопрос Если вас не устраивают ответы на вопрос кого-то elses, вы должны начать свой собственный? показывает, как предварительно заполнить VС++ всеми исходными путями. Это полезно для тех из нас, кто строит из командной строки, но отлаживает с помощью msdev.
Ответ 14
Не действительно функция VB6 IDE, но если вам нужно заполнить несвязанный список с большим количеством данных, то сделать его невидимым во время процесса заполнения ускорит его, возможно, в 10 раз.