Поиск:

Ответ в темуСоздание новой темы Создание опроса
> У меня - VS.net2003, у заказчика - Win95, надо ли перекомпилировать под "VC6"? 
:(
    Опции темы
Dreamer_0x01
Дата 9.9.2005, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 12



Работаю под VisualStudio.NET 2003, пишу с использованием MFC, использую только самые элементарные компоненты и контролы, то есть ничего стороннего...
Заказчик обрадовал сегодня тем, что на некоторых компах у него все еще живут Windows 95. Вот и забеспокоился я - а будет ли работать там моя прога? Или надо ставить "шестерку" и перекомпилировать все в ней?
Неохота ради только проверки оного сносить операционку и ставить Win95. Может кто знает наверняка?


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
Coocky
Дата 9.9.2005, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Dreamer_0x01
Все будет работать отлично если
1.Не использууешь ActiveX элементы
2.Не используешь CRichEditCtrl 2.0
3.Иногда есть проблемы при работе с БД


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
JoyEx
Дата 9.9.2005, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дядя
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 21.6.2005
Где: Москва, РФ

Репутация: 5
Всего: 12



В stdafx.h измени WINVER, _WIN32_WINDOWS и т.д. IMHO на 0x0400


--------------------
Если ты уже никого не боишься, значит ты самый страшный 
PM IM ICQ AOL YIM MSN   Вверх
Coocky
Дата 9.9.2005, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Цитата(JoyEx @ 9.9.2005, 13:54)
В stdafx.h измени WINVER, _WIN32_WINDOWS и т.д. IMHO на 0x0400

Это для компиляции, если я не ошибаюсь
Цитата

When you build an MFC project from a previous release in Visual C++ .NET, you may see compilation errors due to the fact that your project is now using a different value for WINVER.

When your project was being built in a previous version of Visual C++, WINVER may have been set to 400, to allow compilation using an earlier version of Platform SDK header files, such as may have been found on Windows 95 or Windows NT 4.0.

You may have implicitly gotten your WINVER=400 setting in one of two ways:

By using the earlier version of the Platform SDK header files that were available with the earliest versions of Visual C++ 6.0.
By including winres.h in your Visual C++ 6.0 project. This file contained a definition of 400 for WINVER.
If you got your WINVER=400 setting by either of these means, if you still need WINVER=400 to be set, and if your project is now getting compiler errors in Visual C++ .NET, you need to explicitly define WINVER=400. For example, in a header file, you could add the following line:

#define  WINVER  0x0400




--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Dreamer_0x01
Дата 9.9.2005, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 12



Цитата

Все будет работать отлично если
1.Не использууешь ActiveX элементы
2.Не используешь CRichEditCtrl 2.0
3.Иногда есть проблемы при работе с БД


С этим все нормально, я вообще по-возможности все что можно поотключал и использую только "родной" MFC, который использовал и в шестой студии, с БД пока что проект не имеетничего общего.
Использую только:
1.стандртные классы и контролы MFC (CWnd, CDialog, CEdit, CComboBox , CStatic и СListControl).
2.работаю с последовательным портом ,используюдля этого ReadFile,WriteFile, SetCommTimeOuts, и др. "классические" функции.
3. Пользуюсь API-функциями

но при соблюдении этого условия надо делать #define WINVER 0x0400 или не обязательно?


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
Coocky
Дата 10.9.2005, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Цитата(Dreamer_0x01 @ 9.9.2005, 19:48)
но при соблюдении этого условия надо делать #define WINVER 0x0400 или не обязательно?

Я некогда не слышал и спорить не буду..
Но судя по мануалу, это для компиляции



--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Dreamer_0x01
Дата 11.9.2005, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 12



Амортизатор

Спасибо за плюс, вот уж не ожидал smile


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
srd
Дата 11.9.2005, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нереварин
**


Профиль
Группа: Участник Клуба
Сообщений: 951
Регистрация: 30.8.2003
Где: Владивосток

Репутация: 5
Всего: 49



Цитата
но при соблюдении этого условия надо делать #define WINVER 0x0400 или не обязательно?

Допустим, у тебя установлена свежая версия Platform SDK, в которой объявлены прототипы API функций и типов для разных версий Windows (95, 98, XP и т.п.), и перед тобой стоит задача написать программу, работающую под управлением Windows 95. Проблема в том, что ты, работая, например, под XP, можешь написать вызов функции API, существующей только в Windows 2000 или XP, и не сразу это обнаружить (ну будет у тебя прога падать под Windows 95, попробуй догадайся, почему). Стандартные заголовочные файлы Windows имеют примерно такую структуру:
Код

...
#if WINVER >= 0x0400
void WINAPI foo( void );
#endif

#if WINVER >= 0x0501
void WINAPI bar( void );
#endif
...

Здесь API функция foo() существует для Windows 95 и выше, а функция bar() - для версии Windows XP и выше.
Устанавливая нужное значение макроса WINVER, ты выбрасываешь из компиляции прототипы функций, типы и прочее, что не существует на нужной тебе версии Windows.
Другими словами, если ты по ошибке или не знанию напишешь вызов функции bar(), то получишь ошибки при компиляции, т.к. прототип этой функции был выброшен препроцессором.

Так что макросами этими пользоваться необязательно, но желательно.
Кроме WINVER, существуют ещё макросы _WIN32_WINDOWS, _WIN32_WINNT, _WIN32_IE. Смысл этих макросов и их возможные значения подробно описан в MSDN.

Надеюсь, написал понятно smile


--------------------
Не смей читать мою подпись!!!
PM MAIL Jabber   Вверх
Dreamer_0x01
Дата 11.9.2005, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Терминатор
**


Профиль
Группа: Участник
Сообщений: 780
Регистрация: 14.4.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 12



Да, вполне доходчиво ;)


--------------------
Нет ничего невозможного. Есть цели, и есть время и силы на их достижение.
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0733 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.