Вот первоначальное толкование того, что вы ищете ... возможно, неправильно поняли, поэтому дайте мне знать
Я работаю над этой самой проблемой прямо сейчас.
Выполнение 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 прекрасен, необходимо быть в порядке ;)
Я недавно преобразовал проект записанное использование VC ++ 5, которого я не коснулся за 10 лет к VS2008. Я просто загрузил проект, и позвольте VS2008 преобразовать его. Все пошло прекрасное. (спроектируйте теперь здесь: http://www.codeplex.com/Uptime)
По нашему опыту, проекты преобразовывают очень хорошо. Единственное изменение кода, с которым мы встретились, было то, куда _MIN и _MAX были удалены - мы должны были изменить его на станд.:: минута (), и т.д. Наш материал MFC, скомпилированный хорошо. Наша самая большая головная боль получала VS 2 008 версий сторонних библиотек, которые мы купили, и здание VS 2 008 версий больших пакетов с открытым исходным кодом как повышение, OpenSceneGraph и GDAL. Не аэрокосмические исследования - просто довольно утомительный. Я записал короткое резюме на своем блоге.
Если необходимо поддерживать более старые платформы, остерегаться: VC2008 является первой версией, которая не может предназначаться для Win9x или NT4. Моя компания должна придерживаться VC2005 по той самой причине.
Если Ваш проект использует MFC затем, необходимо знать, что он имел довольно основное обновление в 2008, которое могло повредить вещи. Главным образом безопасность и обновления UI, которые таким образом, стоит сделать так или иначе, по-моему.
Посмотрите здесь для более общей информации о том, что изменяется в VS 2008.
На моей работе мы преобразовали большой проект C++ от VS2005 до VS2008. Не было никаких проблем вообще. Само собой разумеется, необходимо определенно все еще сохранить копию старого проекта на всякий случай.:)
Править: Я должен был упомянуть, что проект предназначен, чтобы быть платформенно независимым, и не имеет никаких компонентов графического интерфейса пользователя.
Существует ли различие в синтаксисе, который Вы не можете просто перекомпилировать? VS преобразует .sln и vcproj файлы для Вас автоматически. Остальное - просто код, и если Вы не делаете что-то действительно странное, он должен просто перекомпилировать как есть.