Windows XP -- лажа.....
От: ServerMouse Беларусь  
Дата: 25.10.01 13:22
Оценка:
Есть проект SingleDocument, пользует сокеты, CFormView. Нормально работает под 9х, Milenium и Win2000. Под XP валится.
Винда выводит, что дескать какае-то непонятная ошибка.

Пробовал ставить всякие совместимости (есть в ХР такой пунктик) -- валится. И только в релиз-версии. Падает где-то при создании главного окна. Небольшой диалог при запуске выводит нормально. К этому моменту сокеты проинициализированы, документ не создан.

OK. Прописываю в релизную версию дерективу _DEBUG и всё начинает работать. Убрал все свои использования _DEBUG -- не помогло.

Народ, может кто чего посоветуете, может нужен какой SP для VC (6.0 Enterprise Edition).

ЗЫ Да, сокеты я юзаю без MFC, т.е. через Ws2_32.lib.
Если человек программист, то это надолго.
Re: Windows XP -- лажа.....
От: Андрей Тарасевич Беларусь  
Дата: 25.10.01 15:25
Оценка:
Здравствуйте ServerMouse, Вы писали:

SM>Есть проект SingleDocument, пользует сокеты, CFormView. Нормально работает под 9х, Milenium и Win2000. Под XP валится.

SM>Винда выводит, что дескать какае-то непонятная ошибка.

SM>Пробовал ставить всякие совместимости (есть в ХР такой пунктик) -- валится. И только в релиз-версии. Падает где-то при создании главного окна. Небольшой диалог при запуске выводит нормально. К этому моменту сокеты проинициализированы, документ не создан.


Откомпилируй release с debug-информацией и посмотри, где именно валится. Это не всегда просто, но возможно.
Best regards,
Андрей Тарасевич
Re: Windows XP -- лажа.....
От: Lexey Россия  
Дата: 29.10.01 09:46
Оценка:
Здравствуйте ServerMouse, Вы писали:

SM>Есть проект SingleDocument, пользует сокеты, CFormView. Нормально работает под 9х, Milenium и Win2000. Под XP валится.

SM>Винда выводит, что дескать какае-то непонятная ошибка.


SM>Пробовал ставить всякие совместимости (есть в ХР такой пунктик) -- валится. И только в релиз-версии. Падает где-то при создании главного окна. Небольшой диалог при запуске выводит нормально. К этому моменту сокеты проинициализированы, документ не создан.


SM>OK. Прописываю в релизную версию дерективу _DEBUG и всё начинает работать. Убрал все свои использования _DEBUG -- не помогло.


А причем тут XP? Скорее всего лажа где-то у тебя в программе.

SM>Народ, может кто чего посоветуете, может нужен какой SP для VC (6.0 Enterprise Edition).

Хм, а ты что голый VC++ без сервис-паков юзаешь? Тогда бегом качать и ставить SP5.
Re[2]: Windows XP -- лажа.....
От: ServerMouse Беларусь  
Дата: 30.10.01 09:27
Оценка:
L>А причем тут XP? Скорее всего лажа где-то у тебя в программе.

Хм. Оно конечно так, но приведи мне хотя бы один пример того, КАК нужно написать прогу, что бы она работала ВЕЗДЕ, кроме XP. Причем валилась в XP только в релизе.
Если человек программист, то это надолго.
Re[3]: Windows XP -- лажа.....
От: ServerMouse Беларусь  
Дата: 30.10.01 09:45
Оценка:
Да, и ещё, как надо проставить опции компилятора, что бы можно было отдебагить релизный проект в виде исходов. Assembler конечно рулез, но не в этом случае. Если я в настройках выбираю Programm Database for Edit and Continue компилятор ругается
Command line error D2016 : '/ZI' and '/O2' command-line options are incompatible
Если человек программист, то это надолго.
Re[3]: Windows XP -- лажа.....
От: Lexey Россия  
Дата: 30.10.01 10:01
Оценка:
Здравствуйте ServerMouse, Вы писали:

L>>А причем тут XP? Скорее всего лажа где-то у тебя в программе.


SM>Хм. Оно конечно так, но приведи мне хотя бы один пример того, КАК нужно написать прогу, что бы она работала ВЕЗДЕ, кроме XP. Причем валилась в XP только в релизе.


Поскольку никаких условит ты мне не поставил, то держи (пишу прямо так, т.ч. отсутсвие ошибок не гарантирую):
#if !defined(_DEBUG)
typedef void (*PCrashFunction(char *,int));

OSVERISONINFO ver;
ver.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
GetVersionEx(&ver);
if(ver.dwPlatformId==VER_PLATFORM_WIN32_NT && ver.dwMajorVersion=5 && ver.dwMinorVersion==1)
{
   PCrashFunction pf=NULL;
   pf("aaa",111);
}
#endif


Понятное дело, что это шутка. :)

Да вот только в новой версии ОС запросто могут не работать какие-то некорректные вызовы, которые в других ОС срабатывали.
Т.ч. ищи ошибку в первую очередь у себя.

Да, как я тебе уже говорил, не собирай релизов, если у тебя SP ниже 4-го. Очень возможно, что просто нарвешься на конфликт библиотек.
Re[4]: Windows XP -- лажа.....
От: Lexey Россия  
Дата: 30.10.01 10:13
Оценка:
Здравствуйте ServerMouse, Вы писали:

SM>Да, и ещё, как надо проставить опции компилятора, что бы можно было отдебагить релизный проект в виде исходов. Assembler конечно рулез, но не в этом случае. Если я в настройках выбираю Programm Database for Edit and Continue компилятор ругается

SM>Command line error D2016 : '/ZI' and '/O2' command-line options are incompatible

Почитай вот эту статейку. Там в том числе написано, как собрать release с debug-информацией.
http://www.rsdn.ru/?article/?vcpp/survrls.xml
Автор(ы): Dr. Joseph M. Newcomer
Дата: 18.06.2001
Статья посвящена проблемам перехода с Debug-версии на Release-версию. Рассматриваются
типичные ошибки, которые могут не проявляться в отладочной версии, но проявляются в финальной.
Обсуждается вопрос "ошибок компилятора" и вопросы необходимости оптимизации и ее побочные эффекты.
В последней редакции добавлен раздел посвященный проблеме совместимости динамических библиотек.
Re[4]: Windows XP -- лажа.....
От: ServerMouse Беларусь  
Дата: 30.10.01 11:12
Оценка:
Здравствуйте Lexey, Вы писали:

L>Поскольку никаких условит ты мне не поставил...


Хе-хе. Ты понимал что я имею ввиду. C GetVersion() любое дитя напишет... Такие отмазки не проходят. ;)

Может ей надо чего-нибуть вроде _WIN32_WINNT 0x0500???

Да, мне тут диск принесли -- VC 6.4 А такой вообще есть, или это липа какая-нибудь?
Если человек программист, то это надолго.
Re[5]: Windows XP -- лажа.....
От: Willi  
Дата: 30.10.01 11:30
Оценка:
Здравствуйте ServerMouse, Вы писали:

SM>Хе-хе. Ты понимал что я имею ввиду. C GetVersion() любое дитя напишет... Такие отмазки не проходят. ;)


Падением программы в одной операционке и непадением в другой никого не удивишь.
В 99-и процентах случаев (если не в 100-а) это связано с ошибками в самой программе.
У самого такое было. Под 2000 работало как часы, а под NT4 валилось через раз, причина —
некорректная работа с указателями.
Связано это с тем что алгоритмы реализванные в ядре меняются от версии к версии.

Так что не торопитесь делать громких заявлений.

Ну а падение Release версии это уже всемирно известные грабли на которые наступил
не один миллион программистов.
Основные причины:
— перепутал ASSERT и VERIFY
— запихнул в TRACE важный вызов
— не инициализировал перменные
— не занулил распределенную память

SM>Да, мне тут диск принесли -- VC 6.4 А такой вообще есть, или это липа какая-нибудь?


Наверное имеется в виду VC6 с 4-м сервиспаком, хотя уже давно 5-й вышел.
\/\/i||i
Re[4]: Windows XP -- лажа.....
От: DeBugger Россия  
Дата: 31.10.01 10:10
Оценка:
Здравствуйте ServerMouse, Вы писали:

SM>Да, и ещё, как надо проставить опции компилятора, что бы можно было отдебагить релизный проект в виде исходов. Assembler конечно рулез, но не в этом случае. Если я в настройках выбираю Programm Database for Edit and Continue компилятор ругается

SM>Command line error D2016 : '/ZI' and '/O2' command-line options are incompatible

Попробуй поставить просто Programm Database + generate debug info на закладке Link
Re[5]: Windows XP -- лажа.....
От: OlegO Россия http://www.mediachase.ru
Дата: 31.10.01 10:44
Оценка:
Здравствуйте ServerMouse, Вы писали:

Может я чего-то не понимаю но нельзя что ли выловить место, где код падает.
Проще же будет и сразу появится тема для разговора, а то пока одни эмоции.

Ну бипами, тами или MessageBox'ами.
Ну а самый правильный вариант написать простенький лог в файл.
С уважением, OlegO.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.