Сообщения на форуме пользователя Andrey (77 стр.)
Затестите пожалуйста. | 17 мая 2009 | 2:32 | #42 |
---|
Novartis Games
ах да забыл сказать 8600GT.
ах да забыл сказать 8600GT.
Затестите пожалуйста. | 16 мая 2009 | 18:11 | #25 |
---|
Novartis Games
Ну что классно сделано. Только Alt-Tab не работает. Потерю устройства не обработал наверное.
Как я понял Сцена записана в Blitz3D формате. Что за организация сцены BSP, или что-то еще? Чем коллизии делал,
библиотека или руками? Анимация тоже в b3d хранится? Как вообще геометрию уровня рисуешь?
Ну что классно сделано. Только Alt-Tab не работает. Потерю устройства не обработал наверное.
Как я понял Сцена записана в Blitz3D формате. Что за организация сцены BSP, или что-то еще? Чем коллизии делал,
библиотека или руками? Анимация тоже в b3d хранится? Как вообще геометрию уровня рисуешь?
Получить список IP адресов DNS Серверов(Решено) | 15 мая 2009 | 19:22 | #3 |
---|
pentagra
>ну так правильно это поле AddrCount, ибо возвращается тебе структура IP4_ARRAY.
отлично спасибо. Исправил код на более правильный.
>ну так правильно это поле AddrCount, ибо возвращается тебе структура IP4_ARRAY.
отлично спасибо. Исправил код на более правильный.
Получить список IP адресов DNS Серверов(Решено) | 15 мая 2009 | 18:01 | #1 |
---|
Так вроде решил проблему, правильно вызывать вот так
в первых 4 байтах по ходу дела записано число серверов т.к. странный Ip 2.0.0.0, остальные 2 пары по 4 байта показывают реальные Ip адреса DNS совпадающие с результаттом ipconfig.
Тема закрыта.
DWORD len = 0; QString str = pAdapter->AdapterName; QVector<wchar_t> Name(str.length() + 1); str.toWCharArray(&Name[0]); // Getting len of Buffer DNS_STATUS res = DnsQueryConfig(DnsConfigDnsServerList, 0, &Name[0], NULL, NULL, &len); OutWin32Error(res); QVector<uchar> buffer(len); if (NO_ERROR == res) { res = DnsQueryConfig(DnsConfigDnsServerList, 0, &Name[0], NULL, &buffer[0], &len); OutWin32Error(res); } const uchar* adressList = &buffer[0]; for(DWORD i = 0; i < len; i += 4) { const uchar* Address = &adressList[i]; // convert to string char* addr = inet_ntoa(*reinterpret_cast<const in_addr *>(Address)); .... }
Тема закрыта.
Правка: 24 июня 2009 10:30
Получить список IP адресов DNS Серверов(Решено) | 15 мая 2009 | 16:39 | #0 |
---|
Привет! собственно сабж.
пробую использовать DNS API функцию DnsQueryConfig
но она возвращает какой-то буфер что с ним делать я без понятия.
использую так:
res == 0, len == 12, в buffer что-то есть.
пробовал заранее выделить память на 12 байт и вызвать функцию уже с выделенным значением ну и len = 12 поставил.
В результате тоже самое.
Если вместо DnsConfigDnsServerList использовать другие переметры, то функция выдает ошибку 14 "Not enough storage is available to complete this operation."
может внутри буфера в двоичном предствалении содержиться IP адресс? но он не смовпадает с тем что показывает утилита ipconfig, кстати внутри себя она вызывает
DnsQueryConfig.
Что я неправильно делаю при использовании DnsQueryConfig ?
Есть ли другой способ получить IP адреса DNS серверов?
пробую использовать DNS API функцию DnsQueryConfig
но она возвращает какой-то буфер что с ним делать я без понятия.
использую так:
void* buffer = NULL; DWORD len = 0; QString str = pAdapter->AdapterName; // результат функции GetAdaptersInfo QVector<wchar_t> Name(str.length() + 1); str.toWCharArray(&Name[0]); DNS_STATUS res = DnsQueryConfig(DnsConfigDnsServerList_A, DNS_CONFIG_FLAG_ALLOC, &Name[0], NULL, &buffer, &len); |
пробовал заранее выделить память на 12 байт и вызвать функцию уже с выделенным значением ну и len = 12 поставил.
В результате тоже самое.
Если вместо DnsConfigDnsServerList использовать другие переметры, то функция выдает ошибку 14 "Not enough storage is available to complete this operation."
может внутри буфера в двоичном предствалении содержиться IP адресс? но он не смовпадает с тем что показывает утилита ipconfig, кстати внутри себя она вызывает
DnsQueryConfig.
Что я неправильно делаю при использовании DnsQueryConfig ?
Есть ли другой способ получить IP адреса DNS серверов?
Правка: 24 июня 2009 10:30
А кто пишет OpenGL? | 13 мая 2009 | 12:36 | #3 |
---|
caduceus
под Windows по умолчанию если нету драйверов от вендоров, OpenGL рисует через DirectDraw, естественно реализация от Microsoft.
под Windows по умолчанию если нету драйверов от вендоров, OpenGL рисует через DirectDraw, естественно реализация от Microsoft.
Создание блоков в тетрисе | 10 мая 2009 | 23:59 | #1 |
---|
Пыхнул
>что я делаю не так?
Direct3D9: (ERROR) :Stream 0 is not set and FVF vertex declaration is used
>что я делаю не так?
Direct3D9: (ERROR) :Stream 0 is not set and FVF vertex declaration is used
Deferred. Производительность. Оптимизация. | 9 мая 2009 | 10:08 | #5 |
---|
Render
81 FPS 8600 GT
81 FPS 8600 GT
Мой новый движок <update 6.07> | 8 мая 2009 | 22:05 | #45 |
---|
Sergio666
516 fps, Vista, Athlon 3200+, 8600gt. ATI X1300 перетыкать влом.
516 fps, Vista, Athlon 3200+, 8600gt. ATI X1300 перетыкать влом.
DirectShow нужно получить значение Sample Aspect Ratio(Решено) | 6 мая 2009 | 17:09 | #2 |
---|
drv47
ага спасибо. Уже разобрался. Тема закрыта.
ага спасибо. Уже разобрался. Тема закрыта.
DirectShow нужно получить значение Sample Aspect Ratio(Решено) | 6 мая 2009 | 15:02 | #0 |
---|
собственно как это сделать через DirectShow API, для текущего видео файла?
Правка: 6 мая 2009 17:10
CreateThread () и операторы new и delete | 5 мая 2009 | 15:03 | #19 |
---|
Ghost2
т.е. если я правильно понял std::vector Reentrant потому что если в разных потоках если организовать цикл по вектору + push_back и erase то будут падения?
т.е. тут нужен свой аналогичных контейнер с защитой к примеру критической секцией в методах push_back/erase
т.е. если я правильно понял std::vector Reentrant потому что если в разных потоках если организовать цикл по вектору + push_back и erase то будут падения?
т.е. тут нужен свой аналогичных контейнер с защитой к примеру критической секцией в методах push_back/erase
CreateThread () и операторы new и delete | 5 мая 2009 | 12:47 | #10 |
---|
в одном из больших проектов я подменил _beginthread() на CreateThread, не упало, в любом случае Ghost2 прав лучше вызывать _beginthread() она инициализирует неким образом CRT что-бы были безопасные вызовы. Ну атоматическое закрытие handle потока т.е. некое удобство еще. В большинстве случае CreateThread не вызывает и неправильной работы программы но гарантии нет.
итераторы против простых индексов | 5 мая 2009 | 8:49 | #13 |
---|
MATov
>А зачем удалять из середины вектора вообще? Если это нужно, то зачем использовать вектор?
ну во первых не будет удаления памяти как в случае std::list.
во вторых, если не нужна у порядочность данных в векторе, то удаление из середины будет быстрым, к примеру
cutIt - указывает на середину, тогда перепишем последний элемент на место текущего у уменьшим размер вектора.
ну если сохранить нужно удаленное значение то
>А зачем удалять из середины вектора вообще? Если это нужно, то зачем использовать вектор?
ну во первых не будет удаления памяти как в случае std::list.
во вторых, если не нужна у порядочность данных в векторе, то удаление из середины будет быстрым, к примеру
cutIt - указывает на середину, тогда перепишем последний элемент на место текущего у уменьшим размер вектора.
*curIt = array.back(); array.pop_back();
std::swap(*curIt, array.back()); array.pop_back();
ARB_fragment_program на NV30 - как управлять точностью? | 4 мая 2009 | 10:33 | #13 |
---|
innuendo
>А ты читай внимательно доки, и не только под ARB, но под NV_*
не разводи флейм ладно?, я сам знаю что читать, тебе мало одного раза когда тебя ткнули самого читать ?
>А ты читай внимательно доки, и не только под ARB, но под NV_*
не разводи флейм ладно?, я сам знаю что читать, тебе мало одного раза когда тебя ткнули самого читать ?