Сборка для Windows NT 4.0 с помощью Visual Studio 2005?

голоса
17

Приложение MFC , что я пытаюсь перенести использование afxext.h, которое вызывает , _AFXDLLчтобы установить, что вызывает эту ошибку , если я установил /MT:

Пожалуйста, используйте ключ / MD для _AFXDLL строит

Мои исследования на сегодняшний день указывает на то, что невозможно создать приложение для выполнения на Windows NT 4.0 с помощью Visual Studio (C ++, в данном случае) 2005.

Является ли это на самом деле? Существуют ли какие-либо способа решения этой проблемы?

Задан 03/08/2008 в 03:48
источник пользователем
На других языках...                            


5 ответов

голоса
8

Нет, есть много приложений, построенных с VS2005, которые должны поддерживать Windows XP, 2000, NT, все стек. Вопрос заключается в том, что (по умолчанию) VS2005 хочет использовать библиотеки / экспорт, отсутствующий на NT.

Смотрите эту тему для некоторого фона.

Тогда начните ограничивая зависимости с помощью макросов препроцессора, а также избегать API-интерфейсов, которые не поддерживаются на NT.

Ответил 03/08/2008 d 17:54
источник пользователем

голоса
4

Чтобы избавиться от ошибки _AFXDLL, вы пробовали изменения в настройках, чтобы использовать MFC как статический Lib вместо DLL? Это похоже на то, что вы уже делаете в изменении времени выполнения LIBS к статическому вместо DLL.

Ответил 23/08/2008 d 02:16
источник пользователем

голоса
3

Чтобы обойти эту проблему , чтобы исправить многопоточный DLL. Простые инструкции . Краткое содержание:

Судоходная 8,0 C Runtime библиотеки DLL (MSVCR80.DLL) не поддерживает NT 4.0 SP6 по одной причине и одной - единственной причине: кто - то в Microsoft добавили вызов функции , GetLongPathNameWкоторая не существует в kernel32.dll на NT 4.0.

CRTLIB.C В строке 577, есть вызов GetLongPathNameW. просто заменить его: ret = 0; только использовать эту сборку MSVCR80.DLL на NT 4.0.

После того, как вы получили те, кто работает, придумывая более общее решение должно быть тривиальным.

Ответил 14/10/2008 d 13:32
источник пользователем

голоса
1

Хотя я не знаком с afxext.h, мне интересно, что о нем делает его несовместимым с Windows NT4 ....

Однако, чтобы ответить на исходный вопрос: «Мои исследования до настоящего времени указывает на то, что невозможно создать приложение для выполнения на Windows NT 4.0 с помощью Visual Studio (C ++, в данном случае) 2005.»

Ответ на этот вопрос должен быть утвердительным, особенно если приложение было первоначально написано или работает на NT4! С afxext.h вещи в сторону, это должно быть легко YES.

Другая вещь, которую я нахожу проблемы с это рыхлая природой, в которой люди выбрасывая термин NT. Предоставленное большинство людей думают о «NT», как Windows NT4, но она по-прежнему неоднозначна, потому что «большинство людей» не равно «все людям».

В действительности термин «NT» равен серии NT. Серии NT является NT3, NT4, NT5 (2000, XP, 2003) и NT6 (Vista).

Win32 это подсистема, которая в таргетинг C / C ++ кода тоже. Так что я не вижу причин, почему один не должен быть в состоянии целевой это NT4 платформы и подсистемы, или, если это платформа портирования Excercise, удалить зависимости MFC, что VC возможно внушительно.

Добавление afxext.h в микс, это звучит для меня как проблема совместимости подсистемы. Это часть MFC из моих исследований Google. Afxext.h, кажется, расширения MFC (Microsoft Foundation Class).

Вы можете удалить свою зависимость от MFC? Какой тип приложения это? (CLR, сервис, интерфейс GUI?) Можно ли преобразовать проект в неуправляемый проект C ++ в VC 8.0?

Надеюсь, некоторые это поможет вам вместе.

Ответил 18/09/2008 d 17:18
источник пользователем

голоса
-1

Идея заключается в том, что ех необходимо сделать ссылку на статическую библиотеку.

Пожалуйста, попробуйте это «Свойства конфигурации», «Общие», «Использование MFC» «Использовать MFC в статической библиотеке» «Свойства конфигурации», «Общие», «Использование АТЛ» на «Static Ссылка на АТЛ»

"Свойства конфигурации", "C \ C ++", "Code Generation", "Runtime библиотеки" для "многопоточных (\ MT)"

Тестирование платформы сборки машины: Visual Studio 2005 на Window XP SP2 Клиентская машина: Window XP SP2 (без VS2005 установлен)

Ответил 21/11/2008 d 00:04
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more