Что-нибудь я должен знать прежде, чем преобразовать большую программу C++ от VS2005 до VS2008?

Вот первоначальное толкование того, что вы ищете ... возможно, неправильно поняли, поэтому дайте мне знать

5
задан Aardvark 28 October 2008 в 14:09
поделиться

7 ответов

Я работаю над этой самой проблемой прямо сейчас.

Выполнение WinMerge для наблюдения то, что я изменил...

Хорошо, вот то, что я должен был зафиксировать в огромном клиентском приложении Win32/MFC:

Некоторые функции MFC стали виртуальными (которые не были в прошлом - CWnd:: GetMenu для одного, если я вспоминаю правильно). Также что-то связанное с нашей поддержкой колеса мыши прежней версии (прежде чем Windows имел встроенную поддержку колеса мыши) так или иначе повредилось (я просто удалил функцию, таким образом, я никогда действительно выяснил, почему это повредилось).

Некоторые методы ATL (или параметрические усилители метода) изменились на константу, которые не были первоначально (завинчены мои переопределения).

SDK Платформы является более новым - быть осторожным при установке версии окон SDK #defines правильно (мы не были во всех местах - который был немым). Можно теперь создавать с более новыми версиями (Vista/2008) структур Win32. Это не так работало отлично на моем поле XP.

STDMETHOD теперь включает __ declspec (nothrow), который является 100%-м правом - кроме этого, нашел некоторые проблемы в нашем коде. Некоторый интерфейс, который был записан как он, будет выставлен через COM, но никогда не был, выдал исключения.

IDE имеет ошибку, где отключенные точки останова не показывают полый круг в поле, если Вам не установили точки останова для выделения целой строки (который я думаю, значение по умолчанию для VC ++, возможно?).

Большинство этих проблем происходило из-за тонких ошибок в нашем коде или агрессивной перегрузке библиотек MFC/ATL. Начиная со всех код else прекрасен, необходимо быть в порядке ;)

8
ответ дан 13 December 2019 в 05:44
поделиться

Я недавно преобразовал проект записанное использование VC ++ 5, которого я не коснулся за 10 лет к VS2008. Я просто загрузил проект, и позвольте VS2008 преобразовать его. Все пошло прекрасное. (спроектируйте теперь здесь: http://www.codeplex.com/Uptime)

0
ответ дан 13 December 2019 в 05:44
поделиться

По нашему опыту, проекты преобразовывают очень хорошо. Единственное изменение кода, с которым мы встретились, было то, куда _MIN и _MAX были удалены - мы должны были изменить его на станд.:: минута (), и т.д. Наш материал MFC, скомпилированный хорошо. Наша самая большая головная боль получала VS 2 008 версий сторонних библиотек, которые мы купили, и здание VS 2 008 версий больших пакетов с открытым исходным кодом как повышение, OpenSceneGraph и GDAL. Не аэрокосмические исследования - просто довольно утомительный. Я записал короткое резюме на своем блоге.

0
ответ дан 13 December 2019 в 05:44
поделиться

Если необходимо поддерживать более старые платформы, остерегаться: VC2008 является первой версией, которая не может предназначаться для Win9x или NT4. Моя компания должна придерживаться VC2005 по той самой причине.

2
ответ дан 13 December 2019 в 05:44
поделиться

Если Ваш проект использует MFC затем, необходимо знать, что он имел довольно основное обновление в 2008, которое могло повредить вещи. Главным образом безопасность и обновления UI, которые таким образом, стоит сделать так или иначе, по-моему.

Посмотрите здесь для более общей информации о том, что изменяется в VS 2008.

1
ответ дан 13 December 2019 в 05:44
поделиться

На моей работе мы преобразовали большой проект C++ от VS2005 до VS2008. Не было никаких проблем вообще. Само собой разумеется, необходимо определенно все еще сохранить копию старого проекта на всякий случай.:)

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

2
ответ дан 13 December 2019 в 05:44
поделиться

Существует ли различие в синтаксисе, который Вы не можете просто перекомпилировать? VS преобразует .sln и vcproj файлы для Вас автоматически. Остальное - просто код, и если Вы не делаете что-то действительно странное, он должен просто перекомпилировать как есть.

-1
ответ дан 13 December 2019 в 05:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: