2015-01-10 3 views
0

Консольное приложение WinC VC++ 2008 использует некоторые функции MFC, оно может работать без проблем в режиме «Отладка» в среде VC++ 2008. Кроме того, исполняемый файл debug может запускаться на любом компьютере с полной версией Visual Studio 2008.Ошибка конфигурации конфигурации консоли win32

Но тот же исполняемый файл отладки не будет работать на системах, которые не имеют Visual Studio 2008 установлен, он дает следующее сообщение об ошибке:

заявка не запуститься, поскольку его бок о бок неправильная конфигурация. Пожалуйста, просмотрите журнал событий приложения или используйте инструмент командной строки sxstrace.exe для более подробной информации.

Первоначальный поиск этой проблемы приводит к рекомендации MSN по установке VC++ 2008 x86, распространяемого с SP1. Но это не помогло решить проблему.

Затем приложение win32 консоль перекомпилируется для режима 'Release', и это дает следующее сообщение об ошибке:

фатальная ошибка C1189: #error: Строительство MFC приложения с/MD [d] (CRT длл версии) требует версии MFC для общих dll. Пожалуйста, #define _AFXDLL или не используйте/MD [d]

эта ошибка возникает в заголовке afx.h.

Я пытался на самом деле #define _AFXDLL в препроцессор, но это создает новые сообщения об ошибках, не может преобразовать тип MFC строки на символ * и т.д.

Я также попытался «Использование МФЦ» настройки: в статической библиотеке и общий DLL, оба создают больше ошибок

Дело в том, что исходная программа была создана в VC++ 6.0 и использовала множество функций MFC (особенно string и CObject), но после перекомпиляции в VC++ 2008 в консольном приложении win32 каким-то образом может работать в режиме отладки, но не может быть автономным exe в режиме деблокирования, что является любопытным, что мне нужно иметь автономный exe, который может работать на более новых окнах (7 или 8)

Может ли кто-нибудь помочь. Благодарю.

+0

Прочитайте [Развертывание собственных настольных приложений (Visual C++)] (http://msdn.microsoft.com/en-us/library/zebw5zk9.aspx), в частности [Определение того, какие DLL для перераспределения] (http: // msdn.microsoft.com/en-us/library/8kche8ah.aspx). Это объясняет, почему вы не можете запускать свое приложение в системах, на которых не установлена ​​Visual Studio. Это не касается вашего второго вопроса: ваша конфигурация выпуска не создается, потому что у вас есть несовместимые настройки компилятора/компоновщика. Это совсем другой вопрос и требует щелчка по кнопке * Ask Question *. – IInspectable

ответ

0

Да. Не встраивайте режим Debug. Построить для выпуска. Вы не можете законно распространять DLL-файлы Debug. Вы можете создать версию Release с информацией отладки в ней - через файлы PDB.

0

Это также может произойти, если ваша версия релиза имеет зависимости от некоторых библиотек отладки, ссылаясь на не отладочные.

Смежные вопросы