Проблема в следующем есть проект (не мой, взят с диска к книге "программирование звука на PC") написанный на Visual C++ с использовванием MFC, так вот Release версия программы работает, а Debug версия выдает сообщение об ошибке как только начинается работа со строками. и по всем признакам эти глюки из-за настроек проекта. чего может быть? если надо то вот проект sergeysy.nm.ru/sound_all.zip
Hello, SergeySY!
You wrote on Tue, 30 Sep 2003 09:27:27 GMT:
S> Проблема в следующем есть проект (не мой, взят с диска к книге
S> "программирование звука на PC") написанный на Visual C++ с
S> использовванием MFC, так вот Release версия программы работает, а Debug
S> версия выдает сообщение об ошибке как только начинается работа со
S> строками. и по всем признакам эти глюки из-за настроек проекта. чего
S> может быть? если надо то вот проект sergeysy.nm.ru/sound_all.zip
Симптомы проблемы снимаются после изменения Debug Info c "Program Database for Edit & Continue" на "Program Database". Сама проблема заключается в неподобающем обращении со строковыми литералами — константные они, нефиг их менять.
Если я не угадал — ищи другого телепата
Best regards,
Sergey.
Posted via RSDN NNTP Server 1.7 "Bedlam"
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Здравствуйте, Sergey, Вы писали:
S>Симптомы проблемы снимаются после изменения Debug Info c "Program Database for Edit & Continue" на "Program Database". Сама проблема заключается в неподобающем обращении со строковыми литералами — константные они, нефиг их менять.
S>Если я не угадал — ищи другого телепата
S>Best regards,
S> Sergey.
В том то и дело что они НЕ константы.
Hello, SergeySY!
You wrote on Tue, 30 Sep 2003 09:39:33 GMT:
S>> Симптомы проблемы снимаются после изменения Debug Info c "Program
S>> Database for Edit & Continue" на "Program Database". Сама проблема
S>> заключается в неподобающем обращении со строковыми литералами -
S>> константные они, нефиг их менять. Если я не угадал — ищи другого
S>> телепата
S> В том то и дело что они НЕ константы.
Смотрим стандарт С++, пункт 2.13.4.2: "Whether all strings literals are distincs (that is, are stored in nonoverlapping objects) is implementation-defined. The effect of attemting to modify a string literal is undefined." Ну а в VC++ есть опции компилятора (/Gf и /GF), которые этим управляют. Причем опция /ZI (Edit and Continue) automatically sets the /GF option. В пятой версии VC++ никаких Edit and Continue не было, в шестой она выставляется по умолчанию. Выводы очевидны...
Best regards,
Sergey.
Posted via RSDN NNTP Server 1.7 "Bedlam"
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.