Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 195
от 11.02.2003, 09:50

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 575
Отправлено ответов: 1306
Активность: 227.1 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

vitya
Статус: Профессиональный
Общий рейтинг: 107.94
[Подробней >>]
Yuri Gordienko
Статус: Опытный
Общий рейтинг: 115.33
[Подробней >>]
xiron
Статус: Начальный
Общий рейтинг: 121.27
[Подробней >>]
 
cin.tie(&cout)
Статус: Начальный
Общий рейтинг: 111.84
[Подробней >>]
Jadd
Статус: Профессиональный
Общий рейтинг: 143.06
[Подробней >>]
Ramzes
Статус: Доверительный
Общий рейтинг: 133.63
[Подробней >>]
 
Илья
Статус: Доверительный
Общий рейтинг: 107.38
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 568. Здравствуйте, уважаемые эксперты! Не проводил ли кто-нибудь из вас тестов, или быть может есть какая... (ответов: 3)
Вопрос № 569. Hi all! Программирую в линуксе на gcc. Нужны функции работы с графикой. Накидайте в мыло. Плиз.... (ответов: 2)
Вопрос № 570. 1) Дайте ссылочку на хороший eУчибник по C++ для чайников, plz Заранее благодарю...... (ответов: 4)
Вопрос № 571. Доброе время суток , эксперты ! ******************************* 1.При запуске приложения под отладчи... (ответов: 2)

Вопросов: 4, ответов: 11


 Вопрос № 568

Здравствуйте, уважаемые эксперты!
Не проводил ли кто-нибудь из вас тестов, или быть может есть какая-ибудь официальная информация рассказывающая о разнице в работе функций memset и FillMemory(а как вариант и ZeroMemory) на платформе Win32. В частности меня интересует что быстрее и надёжнее работает memset или ZeroMemory. То что FillMemory и ZeroMemory не переносимы я знаю, так же я знаю, что ZeroMemory(p,size) это не define memset(p,0,size).
Помогите своими знаниями, на всякий случай вот дополнительная информация: обнуляемая память исчисляется единицами мегабайт, но происходить это должно достаточно часто (25-30 раз в секунду).
Заранее спасибо,
Александр.



Вопрос отправлен: 07.02.2003, 10:17
Отправитель: Александр

[Следующий вопрос >>] [Список вопросов]

Отвечает vitya

Доброе время суток, Александр!
На самом деле Александр вы не правы. Если вы покопаетесь в исходных кодах и заголовочных файлах то найдете следующие вещи:
winbase.h
#define FillMemory RtlFillMemory
#define ZeroMemory RtlZeroMemory
winnt.h
#define RtlFillMemory(Destination,Length,Fill) memset((Destination),(Fill),(Length))
#define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length))
Однако же функции RtlZeroMemory и RtlFillMemory для 64 битных ОС являются импортируемыми из ДЛЛ, но так как вас интересует именно вин32 то спокойно можете пользоваться функцией memset или ZeroMemory так как они совершенно одинаковы.

Ответ отправлен: 07.02.2003, 10:30
Отправитель: vitya


Отвечает Yuri Gordienko

Добрый день, Александр!
FillMemory и ZeroMemory не просто непереносимы, а считаются устаревшими, соответственно использовать их не рекомендуется. Способы очистки у них ИМХО одинаковые.
По скорости скажу, что они близки к идеалу, поэтому ничего не выиграешь, - изменяй свой алгоритм.
Скорость проверить просто, - замеряй время-проведи большое число циклов - замеряй время - разницу времени подели на число циклов
Удачи


Ответ отправлен: 07.02.2003, 12:25
Отправитель: Yuri Gordienko


Отвечает xiron

Здравствуйте, Александр!
Ну рассуждаем логично, и последовательно.
смотрим в сырцах ZeroMemory, и обнаруживаем достаточно странную вещ:
#define ZeroMemory RtlZeroMemory
#define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length))
как видим это одно и тоже.
Такс а теперь перейдем к FillMemory, о обнаруживаем не менее странный кусок кода:
#define FillMemory RtlFillMemory
#define RtlFillMemory(Destination,Length,Fill) memset((Destination),(Fill),(Length))
Так что с облегчением!
Все новое это хороше забытое старое!
Удачи.

Ответ отправлен: 07.02.2003, 10:57
Отправитель: xiron


 Вопрос № 569

Hi all!
Программирую в линуксе на gcc. Нужны функции работы с графикой. Накидайте в мыло. Плиз.



Вопрос отправлен: 07.02.2003, 14:26
Отправитель: Kiselev (kiselevd@voronezh.net)

[Следующий вопрос >>] [Список вопросов]

Отвечает Yuri Gordienko

Здравствуйте, Kiselev!
Графика для gcc понятие абстрактное. Тебе нужны библиотеки, которые с этой графикой работают. Библиотек таких масса, - рекомендовать конкретно ничего не буду, т.к. непонятно что за графику ты имеешь в виду.

Ответ отправлен: 07.02.2003, 16:25
Отправитель: Yuri Gordienko


Отвечает cin.tie(&cout)

Добрый день, Kiselev!
gcc - компилятор, а не язык программиирования.
Под консоль?
Под иксы?
под консоль по-моему как таковых их нет, да под консоль графика и не нужна. Хотя в инете может где-то и есть, может какой-нибудь человек и написал библиотечку, но я не знаю.
Под иксы:
Xlib manual
Gtk+ manual
Qt manual


Ответ отправлен: 07.02.2003, 15:49
Отправитель: cin.tie(&cout)


 Вопрос № 570

1) Дайте ссылочку на хороший eУчибник по C++ для чайников, plz
Заранее благодарю...



Вопрос отправлен: 07.02.2003, 15:29
Отправитель: pcgamer

[Следующий вопрос >>] [Список вопросов]

Отвечает Yuri Gordienko

Здравствуйте, pcgamer!
На "Учибник" ссылку дать сложно, но поищи Липмана (lipman.zip) - вполне продвинутая книга.

Ответ отправлен: 07.02.2003, 16:27
Отправитель: Yuri Gordienko


Отвечает Jadd

Здравствуйте, pcgamer!
Тут есть хорошие книги по с/с++
http://anatolix.naumen.ru/books.htm

Ответ отправлен: 07.02.2003, 15:33
Отправитель: Jadd


Отвечает Ramzes

Доброе время суток, pcgamer!
зайди на
www.proglib.ru
там естъ много хороших учебников

Ответ отправлен: 08.02.2003, 11:04
Отправитель: Ramzes


Отвечает Илья

Добрый день, pcgamer!
Посмотрел ответ Jadd'а (ой не хорошо подглядывать:), так там Бьерн Страуструп (классика) только на англ. языке. Посмотри её где-нибудь или на Proge.ru. Там еще куча разных книг по всем языкам.

Ответ отправлен: 08.02.2003, 03:27
Отправитель: Илья


 Вопрос № 571

Доброе время суток , эксперты !
*******************************
1.При запуске приложения под отладчиком VC++ хук ставится.
Сборка Debug.А при простом запуске не ставится.
В чем проблема ?
2.Что за элемент используется в VC++,когда выдается
список членов ListMembers ? Или это просто диалог с ListCtrl ?
Тогда как там делать курсор постоянной длины ?
Буду благодарен любым ответам.



Вопрос отправлен: 07.02.2003, 22:22
Отправитель: IceWINteR (brothers@atnet.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Ramzes

Приветствую Вас, IceWINteR!
1. Так сразу трудно сказатъ. Скажу толъко, что при запуске программы под отладчиком, тот при исполнении программы иногда корректирует некоторые ошибки, которые при простом запуске программы не проходят.
2. ну так это может бытъ что угодно, Dialog c CListCtrl или CWnd с CListCtrl, какая разница ?
А вот насчет курсора постоянной длины я че то не врубился.

Ответ отправлен: 08.02.2003, 11:16
Отправитель: Ramzes


Отвечает xiron

Доброе время суток, IceWINteR!
Ну засчет первого вопроса.
Точно не могу сказать, нужно больше информации а еще лудше код посмотреть. Ну если ты не вызываеш кочечно ASSERT( /* создаеш хук */ ) ;) то должно быть все ОК.
Вопрос 2
Это или ListCtrl или чтото в роде SECListCtrl Stingray-овский лист, но это почти то же самое. А насчет курсора не понял, наверное ты имееш ввиду селекшн ?
Ну надо в MSDN посмотреть, на первый взгляд
BOOL SetColumnWidth( int nCol, int cx );
поможет
Удачи!

Ответ отправлен: 10.02.2003, 16:38
Отправитель: xiron



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (36)
C / C++ (28)
Perl (6)
Delphi (17)
Pascal (23)
Basic / VBA (13)
Java / JavaScript (11)
PHP (9)
MySQL / MSSQL (8)
Пользователю
Windows 95/98/Me (34)
Windows NT/2000/XP (26)
"Железо" (32)
Поиск информации (18)
Администратору
Windows NT/2000/XP (12)
Linux / Unix (13)
Юристу
Гражданское право (10)
Семейное право (6)
Трудовое право (5)
КоАП (4)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное