Вход на сайт
CStdioFile - bad ptr (Visual C++)
12.05.06 10:14
в ответ Murr 12.05.06 02:40
у меня была одна похожая ошибка с <bat ptr>. я присваивал в структурной переменной значение и параллельно присваивал значение массиву.
example:
struct.b=csValue; array[i-1]=TRUE;
получалось что i была равна 0 минус 1 получалось -1 //моя ошибка не досмотрел :)
и переменная struct.b получала другой адрес и в дальнейшем <bat pointer>.
Может где-то скрылась подобная ошибка?
example:
struct.b=csValue; array[i-1]=TRUE;
получалось что i была равна 0 минус 1 получалось -1 //моя ошибка не досмотрел :)
и переменная struct.b получала другой адрес и в дальнейшем <bat pointer>.
Может где-то скрылась подобная ошибка?
NEW 12.05.06 10:18
в ответ scorpi_ 12.05.06 10:11
Кстати я в данный момент пишу на ANSI C, но код выглядит вполне прилично.
------
Так ведь без разницы на чем писать. В pure С чуток больше - на один массив указателей - для эмуляции полиморфизма... Знаком с одним из американских продуктов, написанных целиком на pure C и не имеющим больших проблем - ребята там даже эмуляцию интерфейсов имеют...
------
Так ведь без разницы на чем писать. В pure С чуток больше - на один массив указателей - для эмуляции полиморфизма... Знаком с одним из американских продуктов, написанных целиком на pure C и не имеющим больших проблем - ребята там даже эмуляцию интерфейсов имеют...

NEW 12.05.06 10:26
в ответ JacksonB 11.05.06 16:40
Я не буду комментировать весь кусок, только то, что мне ударило в глаза с первого взгляда, так сказать.
1. Метод ReadString возвращает FALSE, если конец файла. Читать строку из файла нужно только ОДИН раз - в while. Я думаю, все твои неприятности идут оттуда.
2. ulPosition - это не число строк, как ты думаешь, а число байтов - длина файла.
1. Метод ReadString возвращает FALSE, если конец файла. Читать строку из файла нужно только ОДИН раз - в while. Я думаю, все твои неприятности идут оттуда.
2. ulPosition - это не число строк, как ты думаешь, а число байтов - длина файла.
NEW 12.05.06 11:06
в ответ scorpi_ 12.05.06 10:22
Как раз эмуляция полиморфизма и позволяет обрабатывать подобные неприятности - при ошибке дергается обработчик со стандартным смещением и подменяет следующий вызов на процедуру обработки ошибки. За смещениями, разумеется, надо следить, но это легче, чем писать иффы...
