Unhandled exception - помогите найти причину
От: Аноним  
Дата: 28.10.05 21:32
Оценка:
Долго и усердно пытаюсь найти, откуда ошибка...
Всё компилится, при запуске — неизвестное исключение...

есть переменная:
void* m_pBuffer;

чуть дальше использую:

DWORD dwLen=strlen((char*)m_pBuffer)+1;

на этой строке вылетает....

это mfc-приложение... вроде, всё объявлено, что нужно...
извиняюсь, если пишу не в тот форум. Что ещё нужно — выложу, хоть весь код...
заранее спасибо всем, кто откликнется)))
Re: Unhandled exception - помогите найти причину
От: sch  
Дата: 28.10.05 21:52
Оценка:
Судя по всему, m_pBuffer у тебя не инициализирован. Посмотри его значение в отладчике до вызова strlen.
Найди где ему присваивается значение. Последний, самый важный совет -- думай Возьми лист бумаги и напиши
причины по которым может возникнуть проблема. Потом проверь все варианты. Попробуй запустить программу на
простых тестах. Обычно этих шагов хватает с лихвой
Re: Unhandled exception - помогите найти причину
От: Сергей Мухин Россия  
Дата: 29.10.05 07:44
Оценка: 3 (1)
Здравствуйте, Аноним, Вы писали:

А>Долго и усердно пытаюсь найти, откуда ошибка...

А>Всё компилится, при запуске — неизвестное исключение...

А>есть переменная:

А>void* m_pBuffer;

А>чуть дальше использую:


А>DWORD dwLen=strlen((char*)m_pBuffer)+1;


А>на этой строке вылетает....


А>это mfc-приложение... вроде, всё объявлено, что нужно...

А>извиняюсь, если пишу не в тот форум. Что ещё нужно — выложу, хоть весь код...
А>заранее спасибо всем, кто откликнется)))

быстрей всего неиницилизированная переменная, или ее значение указывает на не читаемую память, или читаемую, но ноль не встретился до конца онной.

а теперь придирки:
1. strlen возвращает size_t
2. текст в примере надо форматировать
3. MSVC проверяет не иниц переменные (если опции соотв). а) во врмя компиляции б) во врмя выполнения
4. из примера не понятно почму m_pBuffer описан как void *, а не char
5. лучше последняя строка выгядит так (т.к. и нотации с m_, p и тп не люблю, но это дело вкуса):


const size_t Length = _tcslen( Buffer ) + sizeof( TChar );
---
С уважением,
Сергей Мухин
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.