Вопрос № 51882: Здравствуйте уважаемые эксперты!
Я пишу MVS.Ner на C++.
Сталкнулся с такой проблемой, когда я использую delete переменная
не удаляется, а при работе с COM после вызавов release анологично.
Т.е если я пишу в коде:
MyClass *He...Вопрос № 51892: Добрый вечер уважаемые эксперты!
Такая проблемка.
В Borland C++ & Application Frameworks 3.1 примечания ( //...) и вывод на экран текста (cout << ...) надо выводить русским буквами. Как подсказали, скачал программку KEYRUS.COM из него з...Вопрос № 51900: Здравствуйте. В VC6: чем отличаются формы в MFC APP и MFC DLL - почему в DLL фон картинки изменяется и сама картинка инвертируется, как это изменить?
..Вопрос № 51938: я нчинающий програмист. дайте ссылки пожалуйста где есть примеры создания программ простейщих в borland c++ 6. заранее всем благодарен...
Вопрос № 51.882
Здравствуйте уважаемые эксперты!
Я пишу MVS.Ner на C++.
Сталкнулся с такой проблемой, когда я использую delete переменная
не удаляется, а при работе с COM после вызавов release анологично.
Т.е если я пишу в коде:
MyClass *Head = NULL;
Head = new MyClass;
delete Head;
If (Head == NULL) return; (этот всегда лож)
...
хотя при попытке обращения к элементам этого класса возникает
ошибка access violation.
С переменными я после удаления явно присваиваю NULL, но как быть с COM?
В билдоре тоже самое. Windows переставлял.
Отправлен: 11.08.2006, 21:08
Вопрос задал: Vincent (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Jadd
Здравствуйте, Vincent!
Да точно так же с СОМ, как и с обычными указателями на класс. Делаете Release и pMyCOMRef = NULL; Вот и все. Не совсем понятно что так вызвало затруднение.
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Профессионал) Адрес: Санкт-Петербург WWW:http://www.sport-diary.ru ICQ: 28260749 ---- Ответ отправлен: 11.08.2006, 21:17 Оценка за ответ: 5 Комментарий оценки: Спасибо, я просто раньще не замечал.
Отвечает: Rusfaq mustdie
Здравствуйте, Vincent!
Все правильно. После удаление указатель автоматически не устанавливается в NULL. Одно из правил хорошего программирования гласит, что необходимо при инициализации и после удаление праравнивать указатель к NULL.
--------- Rusfaq mustdie
Ответ отправил: Rusfaq mustdie (статус: Заблокирован)
Ответ отправлен: 11.08.2006, 21:19 Оценка за ответ: 5 Комментарий оценки: Спасибо!
Отвечает: estiGi
Здравствуйте, Vincent!
Все нормально, не волнуйтесь вы так :)
Это свойство языка, удаленные переменные не устанавливаются в ноль. Нужно это делать ручками, если есть такая необходимость:
MyClass *Head = NULL;
Head = new MyClass;
delete Head;
Head = NULL:
Ответ отправил: estiGi (статус: Студент)
Ответ отправлен: 11.08.2006, 21:20 Оценка за ответ: 5 Комментарий оценки: Спасибо! Про обвертки слышал, но незнал для чего они.
Отвечает: Mihasic
Здравствуйте, Vincent!
Касательно оператора delete, то он и не должен присваивать NULL переменной, а память он освобождает.
Во второй строчке необходимо (так правильнее для классов) писать со скобками:
Heap = new MyClass(); // хотя это дело вкуса
А что касается COM, то он тоже не должен быть равным NULL (и вообще все зависит от обертки, которую Вы используете или не используете). Для осторожности присваивайте просто NULL.
Ответ отправил: Mihasic (статус: 5-ый класс)
Ответ отправлен: 12.08.2006, 12:44 Оценка за ответ: 5 Комментарий оценки: Спасибо. Сейчас читаю про обертки.
Вопрос № 51.892
Добрый вечер уважаемые эксперты!
Такая проблемка.
В Borland C++ & Application Frameworks 3.1 примечания ( //...) и вывод на экран текста (cout << ...) надо выводить русским буквами. Как подсказали, скачал программку KEYRUS.COM из него запустите файл rus.bat (Пуск-выполниь-...-rus.bat) потом уже запускаю ВС++. На работе все нормально переключение есть по Left Ctrl+Shift и Right Ctrl+Shift плюс есть звук системного динамика. Дома болт, делаю все то же самое, и ни фига. Винда на работе и дома ХР SP2, только сразных дистрибутивов. На работе никто ничего менять
не мог, не в настройках, не в реестре,т.к. комп стоит у начальника, пользуется только OFFIS-ом, дома то же только винду переустановил. Плюс ВС++ и KEYRUS.COM запускал с флешки, все через "Пуск-Выполнить-...". Подскажите почему дома rus.bat не идет, и чо можно сделать?
Заранее спасибо.
С уважением Евгений.
Отвечает: Mihasic
Здравствуйте, МИТРОФАНОВ Е.В.!
Основное использование KEYRUS.COM - для возможности в ДОСе (в винде нет необходимости) переключать раскладку клавиатуры.
Если Вы просто не могли набрать текст программы русскими буквами, то это можно сделать и так (если под виндой, в текстовом редакторе - желательно в ДОС-кодировке для вашего компилятора). А касательно вывода на консоль - проверьте текущую кодовую страницу, в CMD есть команды:
mode con codepage
mode con cp select=<номер кодовой страницы, например 866, 1251>
Ответ отправил: Mihasic (статус: 5-ый класс)
Ответ отправлен: 12.08.2006, 12:54 Оценка за ответ: 4 Комментарий оценки: Надо как говорят в OEM кодировке, делаю в блокноте, там русские буквы, а выходит после закорючки. Но можно, через ТоталКомандер сохранить в DOS-866 кодировке,да и в блокноте неудобно набирать. Хотелось бы в самом ВС++ русские буквы писать.
Вопрос № 51.900
Здравствуйте. В VC6: чем отличаются формы в MFC APP и MFC DLL - почему в DLL фон картинки изменяется и сама картинка инвертируется, как это изменить?
Отправлен: 11.08.2006, 23:37
Вопрос задал: vanya (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: estiGi
Здравствуйте, vanya!
Простите, но не объясните суть вопроса подробнее? Какие такие картинки??
Хотя, может, другие эксперты вполне поняли вопрос....
Ответ отправил: estiGi (статус: Студент)
Ответ отправлен: 13.08.2006, 07:13
Вопрос № 51.938
я нчинающий програмист. дайте ссылки пожалуйста где есть примеры создания программ простейщих в borland c++ 6. заранее всем благодарен
Отправлен: 12.08.2006, 17:14
Вопрос задал: Nur87 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Morgion
Здравствуйте, Nur87!
http://firststeps.ru/
http://sources.ru/
На первом примеры + обучение, на втором - исходники.
Приложение:
Ответ отправил: Morgion (статус: Студент)
Ответ отправлен: 13.08.2006, 19:52 Оценка за ответ: 5