Visual Studio 2012 Project для Windows XP с использованием MFC

Я недавно получил исходный код от проекта VS2005, который использует библиотеку MFC. Сначала я обновил проект до VS2012, и теперь я могу успешно собрать и запустить программное обеспечение на Windows 8. Затем я хотел развернуть программное обеспечение на компьютере с Windows XP.

Я установил Platform Toolset для сборки под Windows XP (используя опцию v110_xp) и установил «Распространяемый Visual C ++ для Visual Studio 2012 Update 1» на целевой машине. Когда я запускаю программное обеспечение, ничего не происходит. С помощью некоторых функций ведения журнала я могу определить, что вызов LoadFrame (IDR_MAINFRAME) вызывает исключение в kernel32.dll. Я не могу отлаживать дальше в LoadFrame, так как удаленная отладка в Windows XP недоступна в VS2012.

Есть идеи, что может пойти не так? Является ли распространяемый пакет Visual C ++ верной версией для установки на целевой компьютер? Что я должен попробовать дальше?

ОБНОВИТЬ

Мой проект уже настроен на использование 7.1 SDK и имеет минимальную требуемую версию 5,01 в опциях компоновщика.

Если я использую InstallShield для генерации установщика и включаю распространяемые файлы MFC, CRT и ATL, установщик работает, и моя программа теперь работает на Windows XP. Насколько я понимаю распространяемые файлы, они просто копируют соответствующие DLL в папку system32 (или эквивалентную)? Это верно?

Однако, если я просто скопирую файлы, запустите vsredist_x86.exe или используйте Inno Setup для установки программного обеспечения. & DLL, моя программа больше не работает.

3

Решение

Я полагаю, вы прочитали этот блог. Таким образом, вам нужно использовать 7.1 SDK, и вам нужно установить минимальную требуемую версию 5.01 в опциях компоновщика.

2

Другие решения

Используя работающий проект InstallShield и неработающий проект Inno, я смог определить, что настоящий виновник — незарегистрированный файл msxml4.dll. Ошибка, которую я получал, не дала никакой реальной подсказки этому результату, но я в конце концов оказался там …

regsvr32 msxml4.dll
2

По вопросам рекламы [email protected]