Я наблюдаю сбой в моем приложении и стек вызовов показывает нижеКрушение в CString
mfc42u!CString::AllocBeforeWrite+5
mfc42u!CString::operator=+22
не знаю, почему это происходит. Это также происходит не часто. Любые предложения помогут. У меня есть свалка со мной, но я не могу продвинуться дальше.
Операцию я совершаю что-то вроде этого
iParseErr += m_RawMessage[wMsgLen-32] != NC_SP;
где m_RawMessage является массив символов с 512 длины. wMsgLen это беззнаковое короткое и NC_SP определяется как
#define NC_SP 0x20 // Space
EDIT:
Call Stack:
042afe3c 5f8090dd mfc42u!CString::AllocBeforeWrite+0x5 * WARNING: Unable to verify checksum for WP Communications Server.exe
042afe50 0045f0c0 mfc42u!CString::operator=+0x22
042aff10 5f814d6b WP_Communications_Server!CParserN1000::iCheckMessage(void)+0x665 [V:\CSAC\SourceCode\WP Communications Server\HW Parser N1000.cpp @ 1279]
042aff80 77c3a3b0 mfc42u!_AfxThreadEntry+0xe6
042affb4 7c80b729 msvcrt!_endthreadex+0xa9
042affec 00000000 kernel32!BaseThreadStart+0x37
Ну это стек завершить вызов и я опубликовали фрагмент кода, как в моем первоначальном сообщении
Thanks
Viswanathan это не очевидно из вашего фрагмента, как участвует класс CString. Является ли m_RawMessage экземпляром CString? – BostonLogan
Если CParserN1000 :: iCheckMessage не является вашей процедурой потока, у вас есть поврежденный стек. Однако BaseThreadStart/_endthreadex/_AfxThreadEntry выглядит как законный стек. –
ДЕЙСТВИТЕЛЬНО означает + = логическое значение? Код выглядит ошибочно несколькими способами ... – Goz