С ++ переход с Unix на Visual Studio в Windows - PullRequest
2 голосов
/ 27 июля 2010

Я профессионал, работаю в софтверной фирме. В своей прошлой компании я работал над C & C ++ на Unix. Теперь я внезапно перешел на C ++ на Windows и чувствую, что нахожусь в совершенно другом мире. Я работаю над очень большим приложением, которое было полностью написано на C ++. Для простоты у меня нет исходного кода. У меня есть исполняемый файл приложения и несколько других зависимых файлов. Это приложение с графическим интерфейсом (несколько окон, отчеты, Графы и огромные математические вычисления выполняются этим приложением.) Теперь у меня наконец есть исходный код приложения, который включает в себя несколько заголовков, некоторые файлы vcproj, некоторые файлы dsw и некоторые другие, которые я даже не понимаю, почему, черт возьми, они присутствуют. Теперь, как я, программист C ++, моя обязанность состоит в том, чтобы все ошибки, которые идентифицируют клиенты, копировали и исправляли их.

Если это ошибка в Unix, я могу просто использовать двоичный код и исходный код, запустить gdb / dbx и выяснить проблему тем или иным способом, например, добавив несколько операторов printf.

Но, учитывая файлы, о которых я упоминал выше, каким образом можно начать отладку приложения в VC ++ в VISUAL STUDIO. Это очень сложно для программиста C ++ перейти с Unix на Windows. Есть ли какой-нибудь хороший ресурс, на который я мог бы сослаться для такого рода изменений, где я мог бы постичь вещи быстро?

учитывая exe и исходный код приложения, как я могу начать отладку программы, запустив приложение в VS C ++ - (Кстати, я использую VS 2005)

Ответы [ 6 ]

4 голосов
/ 27 июля 2010

Основное отличие состоит в том, что в Unix у вас будут Makefiles, которых вы не найдете в Windows.Visual Studio организует ваш код в проектах и ​​решениях, и эти файлы проектов содержат всю информацию, необходимую VS для компиляции и связывания ваших проектов.

Если у вас есть файл * .sln, просто дважды щелкните его, чтобы открыть его в VS.Затем создайте исходный код (обычно нажатием клавиши F6) и запустите в режиме отладки (обычно F5).

Подробнее: проект - это набор исходных файлов, которые приводят к «чему-то», обычно это LIB, DLLили EXE.

Решение представляет собой набор проектов.Полезно, когда, например, один проект создает LIB, который используется другим проектом.Когда вы устанавливаете зависимости между проектами, VS будет строить проекты в правильном порядке.

Используемые расширения:

  • *. Vcproj: Файл проекта для источников C / C ++
  • *. Vcproj..user: содержит, какие окна открыты в GUI.Можно безопасно удалить.

  • *. Sln: Файл решения

  • *. Ncb: База данных Intellisense для решения.Можно безопасно удалить.
  • *. Suo: содержит, какие окна открыты в GUI.Можно безопасно удалить.

  • *. Dsw: файл, связанный с Visual Studio 6.0 - не используется в VS2005.(Заменено * .sln IIRC)

  • . / Debug / *: папка со всеми промежуточными файлами для сборки отладки (можно изменить)

  • . / Release / *: папка со всеми промежуточными файлами для сборки выпуска (можно изменить)

Это все, что я могу думать на данный момент.

3 голосов
/ 27 июля 2010

Если у вас есть только файл .DSW, а не файл .SLN, то это означает, что проект, вероятно, последний раз работал с VC6, а не с одной из более поздних версий Visual Studio.

Это позорпотому что с VC6 было много изменений в компиляторе C ++, и вы, вероятно, обнаружите, что проект не компилируется с VS2005 без каких-либо незначительных изменений в исходном коде.

У вас естьФайл .SLN - если так, какой номер версии находится вверху файла (это текстовый файл)?Если у вас нет файла .SLN, можете ли вы достать VC6?

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

1 голос
/ 27 июля 2010

Первое, что вы должны попробовать, это присоединиться к процессу во время его работы ( Ctr - Alt - P и выбрать процесс), если у вас есть .pdb (отладочная информация) файлов, вы должны иметь возможность отладить процесс, не перестраивая его.

Если это не помогло, попробуйте отменить проверку «Требовать, чтобы исходные файлы точно соответствовали исходной версии» в Сервис -> Параметры -> Отладка .

Если это тоже не поможет, вам придется снова собрать приложение (открыв файл .sln и выполнив сборку), чтобы двоичный файл соответствовал вашим исходным файлам.

Удачи.

1 голос
/ 27 июля 2010

Я понимаю вашу боль;Я пошел по тому же пути несколько месяцев назад.

Вы, наверное, поняли это, но Visual Studio не является точной альтернативой gcc / g ++.Он включает в себя текстовый редактор, отладчик и т. Д.

Обычно у вас есть два "режима" компиляции: debug и release .(вы можете добавить свой собственный)

В режиме debug все оптимизации отключены, и вы можете выполнить свою программу в отладчике, использовать шаг за шагом, добавлять точки останова, ...

Просто запустите его, нажав клавишу F5.

Дополнительные примечания к дополнительным файлам:

В мире Visual Studio .vcproj файлы представляют собой "проекты": aгруппа файлов, принадлежащих одному и тому же проекту (исходные файлы, заголовки, ресурсы, ...).

A .dsw (старое имя для текущих .sln файлов, которые я считаю) является файлом "решения": группа из одного или нескольких проектов, которые могут иметь внутренние зависимости.Пример: вы можете иметь в одном решении библиотеку и программное обеспечение, которое зависит от него.Чтобы при компиляции всего решения все строилось в правильном порядке.

0 голосов
/ 27 июля 2010

VS2005 может преобразовать файл dsw для вас в файл sln, но вам нужны все исходные файлы VC6, чтобы преобразование было успешным.Для отладки, пожалуйста, проверьте следующую ссылку msdn, я надеюсь, что это поможет вам.

http://msdn.microsoft.com/en-us/library/sc65sadd.aspx Пожалуйста, выберите гиперссылку "Отладочный собственный код" для C ++.

0 голосов
/ 27 июля 2010

Скомпилируйте код с отладочной информацией и нажмите клавишу f5 (Начать отладку)Я не вижу, где проблема.На linux это тоже самое.

...