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

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


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 556
от 18.10.2006, 06:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 405, Экспертов: 49
В номере:Вопросов: 4, Ответов: 8


Вопрос № 58635: Добрый день. Задавал этот вопрос в рассылку "DirectX/OpenGL", но ответов не получил. Задаю сюда. У Андре Ламота для игр директикс отрисовка экрана вызывается в обход сообщения WM_PAINT. Вызов идёт через в WinMain, в теле цикла обра...
Вопрос № 58670: Здравствуйте уважаемые эксперты. Я совсем недавно начала осваива С++. У меня возник такой вопрос: 1)Я пишу программу которая работает с матрицами (складывает, умножает..). Матрица заполняется в основной программе. У меня есть метод класса Sum...
Вопрос № 58680: Здравствуйте эксперты! Задачка такая: есть строка слов. разделенных либо пробелами либо табуляцией. Надо отформатировать эту строку так, чтобы все слова были разделены пробелами( вначале может быть либо пробел либо таб). Задачку надо решить на об...
Вопрос № 58700: По поводу вопроса №58670. Так вот, Delphi и Builder C не хотят дружно жить. Когда я пиши программу в первый раз она компилится и запускается, но когда ту же программу открываешь она уже не компилится и не запускается, возникает ошибка. Он ругается на...

Вопрос № 58.635
Добрый день. Задавал этот вопрос в рассылку "DirectX/OpenGL", но ответов не получил. Задаю сюда.

У Андре Ламота для игр директикс отрисовка экрана вызывается в обход сообщения WM_PAINT. Вызов идёт через в WinMain, в теле цикла обработки сообщений.
Для выдачи фиксированного FPS программа ждёт (простаивает), при этом используется GetTickCount;

В чём преимущества и недостатки такой схемы по сравнению с отрисовкой по WM_PAINT и контролем FPS по мультимедийному таймеру?
Отправлен: 12.10.2006, 10:35
Вопрос задал: Вiктор (статус: 7-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: dentist
Здравствуйте, Вiктор!
мой не профессиональный ответ ;)

если рендеринг по сообщению WM_PAINT, то всёравно придёться принудительно, из цикла, вызывать это сообщение.
так зачем писать лишние строчки типа:
case WM_PAINT: render(); break;
когда можно сразу в цикле это делать.
новых возможностей перед нами не предстанет, зато хоть и незначительно но сократит кол-во переходов и вызовов -> производительность.
имхо.
---------
"Software is like sex, it's better then it's free" (c) Linus Torvalds
Ответ отправил: dentist (статус: 5-ый класс)
Ответ отправлен: 12.10.2006, 11:25
Оценка за ответ: 3
Комментарий оценки:
мне от такого ответа не горячо и не холодно. Сам виноват, надо было мне более чётко сформулировать вопрос.

Отвечает: Melamed
Здравствуйте, Вiктор!
В дополнении к предыдущему ответу я привожу текст цыкла обработки сообщений окна. При такой организации цикла прорисовка окна будет осуществлятся каждый раз, когд а в очереди сообщений нету сообщений для данного окна

Приложение:

Ответ отправил: Melamed (статус: 6-ой класс)
Ответ отправлен: 12.10.2006, 14:40
Оценка за ответ: 2
Комментарий оценки:
Спасибо за код. Но я не это спрашивал. Я спрашивал про преимущества и недостатки. А подобный код я уже видел у Ламота.


Вопрос № 58.670
Здравствуйте уважаемые эксперты.
Я совсем недавно начала осваива С++. У меня возник такой вопрос:
1)Я пишу программу которая работает с матрицами (складывает, умножает..). Матрица заполняется в основной программе. У меня есть метод класса Summa, который должен складывать матрицы. Подскажите пожалуйста, как мне передать мои матрицы в метод Summ. Матрицы статические 50х50. Если можно приведите программный код.
2)И еще такой вечный вопрос ;-) Как сделать чтобы Delphi и Builder C дружили. Тут недавно рассылка вышла, пишут игру на Builder C, а работаю я больше в Delphi. А игру пописать тоже хочется.
Ну вот пока все! Спасибо за внимание ;-)
Отправлен: 12.10.2006, 14:26
Вопрос задала: KInika (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Jadd
Здравствуйте, KInika!
1)Дык очень просто. Можно передать указатель на Вашу матрицу в функию в качестве аргумента. См. приложение как пример.

2)Не совсем понятно что хочется видеть или изобразить. Уточните, пожалуйста, в личку или форум.

Удачи.

Приложение:

---------
Если в сердце дверь закрыта, нужно в печень постучаться

Ответ отправил: Jadd (статус: Профессионал)
Адрес: Санкт-Петербург
WWW: http://www.sport-diary.ru
ICQ: 28260749
----
Ответ отправлен: 12.10.2006, 15:19
Оценка за ответ: 5


Вопрос № 58.680
Здравствуйте эксперты!
Задачка такая: есть строка слов. разделенных либо пробелами либо табуляцией. Надо отформатировать эту строку так, чтобы все слова были разделены пробелами( вначале может быть либо пробел либо таб). Задачку надо решить на обычном С. используя только его функции.
Заранее благодарен.
Отправлен: 12.10.2006, 15:40
Вопрос задал: Gang (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Sergijj
Здравствуйте, Gang!

Функция, строку без <TAB>:

#include <string.h>

char *tab2space(char *str) {
char *sptr = str;
while (!!(sptr = strchr(sptr, ' ')))
*(sptr++) = 0x20;
return str;
};

Успехов!
---------
Стучитесь! И Вас откопают...
Ответ отправил: Sergijj (статус: 6-ой класс)
Ответ отправлен: 12.10.2006, 16:25

Отвечает: Sergey A. Wedensky
Здравствуйте, Gang!
В приложении решение задачи в общем
случае, т.е. все разделители (повторяющиеся в т.ч.) заменяются на пробелы, , ведущие и
завершающие разделители удаляются.

Приложение:

Ответ отправил: Sergey A. Wedensky (статус: 5-ый класс)
Ответ отправлен: 12.10.2006, 16:43

Отвечает: Patriotix-N
Здравствуйте, Gang!
Код прилагается. "str" - данная строка.

Приложение:

---------
Краткость - сестра таланта.

Ответ отправил: Patriotix-N (статус: 2-ой класс)
Ответ отправлен: 13.10.2006, 00:33


Вопрос № 58.700
По поводу вопроса №58670. Так вот, Delphi и Builder C не хотят дружно жить. Когда я пиши программу в первый раз она компилится и запускается, но когда ту же программу открываешь она уже не компилится и не запускается, возникает ошибка. Он ругается на файл ilink32.cfg
Да, и еще вроде со статическим массивом оказалось все не так уж сложно. А если работать с динамическим массивом? Его тоже нужно объявлять с помощью указателей?
Отправлен: 12.10.2006, 20:04
Вопрос задала: KInika (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Jadd
Здравствуйте, KInika!
По поводу "содружества" дельфи и билдера. Самый очевидный выход "поженить" эти продукты - через dll. Я просто давно не писал ничего в этих пакетах. Может кто-то другой посоветует что-то дельное.

Насчет массивов.
А все по правилам С++. Объявляется переменная-указательна тип, а потом выделяется память под такое количество элементов, какое надо. Например:

//переменная, которая будет хранить адрес на начало одномерного массива
int *array;

//выделяем память под массив из 5-ти элементов
array = new int[5];

//что-то делаем

//очищаем память
delete [] array;

Примерно так. Если будут еще вопросы, пишите (можно и в личку).
Удачи.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Профессионал)
Адрес: Санкт-Петербург
WWW: http://www.sport-diary.ru
ICQ: 28260749
----
Ответ отправлен: 12.10.2006, 20:34

Отвечает: Vaga
Здравствуйте, KInika!
Подружить Делфи и БСБ не проблема, используя динамические библиотеки. Тем более, что в Билдере они пишутся легко и непринужденно.

массив из 5 элементов типа int:

int* MyArray = new int[5];
........
........
delete[] MyArray;


---------
Ошибка становится ошибкой, когда рождается как истина. Станислав Ежи Лец
Ответ отправил: Vaga (статус: 4-ый класс)
Ответ отправлен: 12.10.2006, 22:15


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

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

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

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


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное