Есть проект SingleDocument, пользует сокеты, CFormView. Нормально работает под 9х, Milenium и Win2000. Под XP валится.
Винда выводит, что дескать какае-то непонятная ошибка.
Пробовал ставить всякие совместимости (есть в ХР такой пунктик) -- валится. И только в релиз-версии. Падает где-то при создании главного окна. Небольшой диалог при запуске выводит нормально. К этому моменту сокеты проинициализированы, документ не создан.
OK. Прописываю в релизную версию дерективу _DEBUG и всё начинает работать. Убрал все свои использования _DEBUG -- не помогло.
Народ, может кто чего посоветуете, может нужен какой SP для VC (6.0 Enterprise Edition).
ЗЫ Да, сокеты я юзаю без MFC, т.е. через Ws2_32.lib.
Здравствуйте ServerMouse, Вы писали:
SM>Есть проект SingleDocument, пользует сокеты, CFormView. Нормально работает под 9х, Milenium и Win2000. Под XP валится. SM>Винда выводит, что дескать какае-то непонятная ошибка.
SM>Пробовал ставить всякие совместимости (есть в ХР такой пунктик) -- валится. И только в релиз-версии. Падает где-то при создании главного окна. Небольшой диалог при запуске выводит нормально. К этому моменту сокеты проинициализированы, документ не создан.
Откомпилируй release с debug-информацией и посмотри, где именно валится. Это не всегда просто, но возможно.
Здравствуйте ServerMouse, Вы писали:
SM>Есть проект SingleDocument, пользует сокеты, CFormView. Нормально работает под 9х, Milenium и Win2000. Под XP валится. SM>Винда выводит, что дескать какае-то непонятная ошибка.
SM>Пробовал ставить всякие совместимости (есть в ХР такой пунктик) -- валится. И только в релиз-версии. Падает где-то при создании главного окна. Небольшой диалог при запуске выводит нормально. К этому моменту сокеты проинициализированы, документ не создан.
SM>OK. Прописываю в релизную версию дерективу _DEBUG и всё начинает работать. Убрал все свои использования _DEBUG -- не помогло.
А причем тут XP? Скорее всего лажа где-то у тебя в программе.
SM>Народ, может кто чего посоветуете, может нужен какой SP для VC (6.0 Enterprise Edition).
Хм, а ты что голый VC++ без сервис-паков юзаешь? Тогда бегом качать и ставить SP5.
L>А причем тут XP? Скорее всего лажа где-то у тебя в программе.
Хм. Оно конечно так, но приведи мне хотя бы один пример того, КАК нужно написать прогу, что бы она работала ВЕЗДЕ, кроме XP. Причем валилась в XP только в релизе.
Да, и ещё, как надо проставить опции компилятора, что бы можно было отдебагить релизный проект в виде исходов. Assembler конечно рулез, но не в этом случае. Если я в настройках выбираю Programm Database for Edit and Continue компилятор ругается
Command line error D2016 : '/ZI' and '/O2' command-line options are incompatible
Здравствуйте ServerMouse, Вы писали:
L>>А причем тут XP? Скорее всего лажа где-то у тебя в программе.
SM>Хм. Оно конечно так, но приведи мне хотя бы один пример того, КАК нужно написать прогу, что бы она работала ВЕЗДЕ, кроме XP. Причем валилась в XP только в релизе.
Поскольку никаких условит ты мне не поставил, то держи (пишу прямо так, т.ч. отсутсвие ошибок не гарантирую):
Да вот только в новой версии ОС запросто могут не работать какие-то некорректные вызовы, которые в других ОС срабатывали.
Т.ч. ищи ошибку в первую очередь у себя.
Да, как я тебе уже говорил, не собирай релизов, если у тебя SP ниже 4-го. Очень возможно, что просто нарвешься на конфликт библиотек.
Здравствуйте ServerMouse, Вы писали:
SM>Да, и ещё, как надо проставить опции компилятора, что бы можно было отдебагить релизный проект в виде исходов. Assembler конечно рулез, но не в этом случае. Если я в настройках выбираю Programm Database for Edit and Continue компилятор ругается SM>Command line error D2016 : '/ZI' and '/O2' command-line options are incompatible
Здравствуйте ServerMouse, Вы писали:
SM>Хе-хе. Ты понимал что я имею ввиду. C GetVersion() любое дитя напишет... Такие отмазки не проходят. ;)
Падением программы в одной операционке и непадением в другой никого не удивишь.
В 99-и процентах случаев (если не в 100-а) это связано с ошибками в самой программе.
У самого такое было. Под 2000 работало как часы, а под NT4 валилось через раз, причина —
некорректная работа с указателями.
Связано это с тем что алгоритмы реализванные в ядре меняются от версии к версии.
Так что не торопитесь делать громких заявлений.
Ну а падение Release версии это уже всемирно известные грабли на которые наступил
не один миллион программистов.
Основные причины:
— перепутал ASSERT и VERIFY
— запихнул в TRACE важный вызов
— не инициализировал перменные
— не занулил распределенную память
SM>Да, мне тут диск принесли -- VC 6.4 А такой вообще есть, или это липа какая-нибудь?
Наверное имеется в виду VC6 с 4-м сервиспаком, хотя уже давно 5-й вышел.
Здравствуйте 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