Login
CStdioFile - bad ptr (Visual C++)
NEW 12.05.06 16:37
in Antwort scorpi_ 12.05.06 16:31, Zuletzt geändert 12.05.06 16:43 (Murr)
Уговорил - напишу компайлер который не будет создавть эти объекты...
P.S. Разумеется придется изучить стандарт на предмет обязательности создания объектов (т.е. вызовов невиртуальных конструкторов) при отсутствии в теле операций со статическими объектами...

P.S. Разумеется придется изучить стандарт на предмет обязательности создания объектов (т.е. вызовов невиртуальных конструкторов) при отсутствии в теле операций со статическими объектами...
NEW 12.05.06 16:38
in Antwort voxel3d 12.05.06 16:35
Кстати, хотел спросить: тебе так не хочется, чтобы под заголовком стояло "изменено тогда-то тем-то"? ;)
NEW 12.05.06 16:44
in Antwort Simple 12.05.06 16:38, Zuletzt geändert 12.05.06 16:53 (voxel3d)
В данном случае я спрашивал о времени жизни временного объекта при вызове SomeClass(); Мурр дал ответ, что хороший компайлер не станет вызывать конструктор SomeClass::SomeClass(), после чего я спросил: "даже если там будет код в конструкторе"? Спросив я сразу понял глупость вопроса -- если будет код, то компайлер его вырезать не станет, посколько никаких ответов не было ещё, я просто удалил вопрос, чтобы не было лишнего мусора.
Dropbox - средство синхронизации и бэкапа файлов.
NEW 12.05.06 16:45
in Antwort Simple 12.05.06 16:37
Эээ... воросик - помимо получения знаний путем прочтения всякого-разного. есть еще путь постижения путем осмысления (самостоятельно) полученного опыта... не пользуеетесь?



NEW 12.05.06 16:46
in Antwort Simple 12.05.06 11:50
Я разобрался с bad ptr
CString(ltoa(k,&temp,10)) проблема была тут. как только я ltoa требует к переменной k тип long там раньше стояла переменная i типа ULONGLONG
видать что-то в памяти происходило, но как только я изменил это заработало.
Вопрос. Как я могут узнать конец файла или нет в классе CFile
пример:
CStdio ifile ;
while (!iflie.eof)
{
}
так было бы прекрасно. но я там не наш╦л такого метода (eof).
CString(ltoa(k,&temp,10)) проблема была тут. как только я ltoa требует к переменной k тип long там раньше стояла переменная i типа ULONGLONG
видать что-то в памяти происходило, но как только я изменил это заработало.
Вопрос. Как я могут узнать конец файла или нет в классе CFile
пример:
CStdio ifile ;
while (!iflie.eof)
{
}
так было бы прекрасно. но я там не наш╦л такого метода (eof).
NEW 12.05.06 16:48
in Antwort JacksonB 12.05.06 16:46, Zuletzt geändert 12.05.06 16:51 (Simple)
NEW 12.05.06 16:50
in Antwort Murr 12.05.06 16:45
Почему ж? Вот, например, прочитал я книжонку некоего гуру Джорджа Фелса, а там написано: когда подбиваешь, не х...рь. Попробовал - и правда ОН (с). Целесообразность и неизобретение колеса. Использование опыта, накопленного другими.
NEW 12.05.06 16:56
in Antwort voxel3d 12.05.06 16:44
если будет код, то компайлер его вырезать не станет
------
Компайлер не может удалить вызов если есть побочный эффект от вызова или он не в состоянии определить наличие такого эффект - изменяется статический член, конструктор виртуальный, информация по базовому классу недоступна...
Реально же отследить эти условия не слишком просто, особенно если есть крутая иерархия и потому _большинство_ компайлеров будет строить вызов конструктора и вызов деструктора. Когда именно будет вызван последний - сразу или при выходе из области определения - не важно, кроме ситуаций с ошибками.
------
Компайлер не может удалить вызов если есть побочный эффект от вызова или он не в состоянии определить наличие такого эффект - изменяется статический член, конструктор виртуальный, информация по базовому классу недоступна...
Реально же отследить эти условия не слишком просто, особенно если есть крутая иерархия и потому _большинство_ компайлеров будет строить вызов конструктора и вызов деструктора. Когда именно будет вызван последний - сразу или при выходе из области определения - не важно, кроме ситуаций с ошибками.
NEW 12.05.06 16:59
in Antwort Simple 12.05.06 16:50
Целесообразность и неизобретение колеса.
-----
Увы, я изобретаю колесо регулярно... что интересно - почти всегда - целесообразно.
-----
Увы, я изобретаю колесо регулярно... что интересно - почти всегда - целесообразно.

NEW 12.05.06 17:00
Об этом поподробнее пожалуйста.
in Antwort Murr 12.05.06 16:56
В ответ на:
Когда именно будет вызван последний - сразу или при выходе из области определения - не важно, кроме ситуаций с ошибками.
Когда именно будет вызван последний - сразу или при выходе из области определения - не важно, кроме ситуаций с ошибками.
Об этом поподробнее пожалуйста.
NEW 12.05.06 17:02
in Antwort JacksonB 12.05.06 16:46
> CString(ltoa(k,&temp,10)) проблема была тут. как только я ltoa требует к переменной k тип long там раньше стояла переменная i типа ULONGLONG
2all: что-то я чисто теоретически даже не могу понять, как из-за этого могли проблемы данные быть. У кого-нибудь есть идеи?
2all: что-то я чисто теоретически даже не могу понять, как из-за этого могли проблемы данные быть. У кого-нибудь есть идеи?
Dropbox - средство синхронизации и бэкапа файлов.
NEW 12.05.06 17:05
in Antwort voxel3d 12.05.06 17:02
А ты сюда посмотри:
ЗЫ Мне только непонятно, почему он тему не читает, и продолжает возиться с этим дерьмом...
В ответ на:
char temp=0;
csLineNumber=LineNumber(CString(ltoa(i,&temp,10)),2);
ЗЫ Мне только непонятно, почему он тему не читает, и продолжает возиться с этим дерьмом...
NEW 12.05.06 17:14
in Antwort scorpi_ 12.05.06 17:05
NEW 12.05.06 17:16
in Antwort Russman 12.05.06 17:14
12.05.06 17:19
in Antwort scorpi_ 12.05.06 17:05
Может быть, потому, что stl и шаблоны сложны для двух месяцев?
Dropbox - средство синхронизации и бэкапа файлов.
NEW 12.05.06 17:21
in Antwort scorpi_ 12.05.06 17:16
Я тоже удивился, но решил что человеку воспитаному на РАПИРА и вынесшему основные знания по информатике из школы, лучше не выступать. Мало ли как там людей на факультетах информатики и кибернетики учат.
---
Сделать из мухи слона нетрудно, труднее его прокормить. (2:5030/67)
---
Сделать из мухи слона нетрудно, труднее его прокормить. (2:5030/67)
NEW 12.05.06 17:21
in Antwort scorpi_ 12.05.06 17:05
код не мой. дали чей-то старый. надо чтобы работал и с новыми требованиями.
я сделал немного по другому эту строчку.
k=(long)i;
tmp.Format("%d", k);
csLineNumber=LineNumber(tmp,2);
думаю так лучше.
Работать-то надо. вот и вожусь!
я сделал немного по другому эту строчку.
k=(long)i;
tmp.Format("%d", k);
csLineNumber=LineNumber(tmp,2);
думаю так лучше.
Работать-то надо. вот и вожусь!
NEW 12.05.06 17:22
in Antwort scorpi_ 12.05.06 17:05
Для стековых объектов порядок размещения не гарантирован?
Dropbox - средство синхронизации и бэкапа файлов.