Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Win9x и МFC XP


Автор: nikitao 22.2.2006, 21:56
Вопрос прост: как заставить работать проги скомпилированые из XP на более ранних платформах.Что нужно поменять в свойствах проекта smile

Если делаю Static Dll ,то возникает Runtime error,если просто dll и копирую их,то пишет,что dll для более поздней платформы smile

Автор: Earnest 22.2.2006, 22:02
Что такое Static DLL?
А вообще - ответ такой: не использовать функции, не поддерживаемые на старых платформах. Свойства проекта не при чем.
Если, конечно, речь не о Managed С, которому RunTime нужен... Тогда - не знаю.

Автор: nikitao 22.2.2006, 22:17
Цитата(Earnest @ 22.2.2006, 23:02 Найти цитируемый пост)
Что такое Static DLL?
А вообще - ответ такой: не использовать функции, не поддерживаемые на старых платформах. Свойства проекта не при чем.
Если, конечно, речь не о Managed С, которому RunTime нужен... Тогда - не знаю.


Может меня неправельно поняли.
Я создаю MFC Application,выбирая static librari. Компилирую(не изменяя код) все ессно работает.Потом пытаюсь запустить эту прогу из 98.Возникает ошибка.Если я выбираю dll librari и копирую MFC80U.dll и msvcr80.dll вместе с прогой,то ось пишет ,что она устарила ее(ось) нужно поменять на более новую. smile

Автор: Nuzur 23.2.2006, 10:54
1. Попробуй сделать полный ребилд поректа.
2. Какието сторонние компоненты используеш? Ну типа ActiveX там и всее такое, посмотри, может ты чего-то не поерестрил на другом компе\на другой винде.
3. Может ты какуюта функцию юзаеш котороя только с 2000-й появилась, ну типа работа с реестром...
Удачи!

Скопировать библиотеку мало, ее надо Исче и зарегистрировать на компе regsrv32

Автор: Coocky 23.2.2006, 13:43
Библиотека и тип компоновки здесь ни причем...
Ты используешь функции, которые не работают в 98 и 95. Либо работают, но с другими параметрами.
Можно узнать, с чем ты конкретно работаешь?

Автор: nikitao 23.2.2006, 14:20
Конечно можно. smile
Честно говоря я ничего особенного не делаю
1 new project
2. Выбираю тип Dialog и MFC выбираю как статический
3.Создаю приложение и ничего не меняя компилирую..Получается exe файл.У меня VS 2005 ,а ось XP
4.Pfgecrf. Virtual PC ,там гружу 98 ось ,там запускаю exeшник,а он мне ошибку smile



Автор: Coocky 23.2.2006, 14:29
Цитата(nikitao @ 22.2.2006, 22:17 Найти цитируемый пост)
Если я выбираю dll librari и копирую MFC80U.dll и msvcr80.dll

Ты на 8 пишешь?
Тогда не знаю smile

Автор: nikitao 23.2.2006, 22:49
Coocky, то есть лучше 2003 студию поставить?
Я об этом уже думал.У тебя все с ней нормально?(в смысле моя проблема тогда должна решится?) smile

Автор: CaptainFlint 24.2.2006, 01:11
Цитата(nikitao @ 22.2.2006, 22:17 Найти цитируемый пост)
копирую MFC80U.dll

В этом всё и дело. Ты создал юникодный проект, а Win9x юникод не поддерживает. Варианта два:
1. Установить на 98-ю винду MS Unicode Layer (чур меня не спрашивать, что это такое и где взять - сведения у меня об этом лишь самые поверхностные smile ), но только надо учесть, что не все функции этим layer'ом поддерживаются.
2. Переделать проект на не-юникодный. Тогда либо понадобится mfc80.dll + msvcr80.dll, либо делать статическую линковку. В этом случае всё должно отлично запуститься.

Автор: AndreySol 27.2.2006, 00:56
Может я не прав но по аналогии с моей VC 6 - найди где у тебя Build -> Set Active Configuration и выбери там Win32 Realese.

Автор: nikitao 27.2.2006, 21:08
AndreySol, нет это тут не причем


CaptainFlint, огромное спасибо.Теперь стало работать smile Хотя некоторые проблемы остались:к примеру перестал нормально работать раскрывающийся список(стрелочка на нем не нажимается) smile .


Всем спасибо за помощь smile

Автор: Rapalex 3.3.2006, 09:34
Я пробывал прогу собраную в XP запускать на Win 98 и 2000 а ComboBox в этих системмах раскрывается на 2-5 пикселей. Есть ли воможность от этого избавится?

Автор: Coocky 5.3.2006, 15:43
Как это? Не понял... smile

Автор: nikitao 5.3.2006, 23:09
Цитата(Coocky @ 5.3.2006, 16:43 Найти цитируемый пост)
Как это? Не понял...

А вот так и есть.Нажимаешь на стелку в раскрывающемся списке,а он независемо от того есть там элементы или нет не выезжает,а только маленькая черная полоска снизу появляется(такая же когда пытаешься раскрыть пустой список).При этом можно выбирать элементы с помощью клавиатуры.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)