Ну ты настоящий, прирожденный тестер , может пора сервис по тестированию в интернет пространстве открыть .Хакер писал(а):В общем, нет на земле другого такого человека, так умело умудряющегося наталкиваться на все баги и косяки в стороннем софте.
Модератор: Mikle
Ну ты настоящий, прирожденный тестер , может пора сервис по тестированию в интернет пространстве открыть .Хакер писал(а):В общем, нет на земле другого такого человека, так умело умудряющегося наталкиваться на все баги и косяки в стороннем софте.
Хакер писал(а):MRA-плашки пересиливают AoS-овское окно, и видны поверх него. Но HL-овское окно пересиливает всё (вряд ли у него стоит topmost-стиль, надо смотреть, как оно там сделано) и MRA-плашки поверх него не пролазят.
iGrok писал(а):Всегда знал, что MRA - сущее зло.
Хакер писал(а):откуда взялась библиотека vb_dx.dll?
А fullscreen труднее реализовать или в этом режиме снизится производительность?Mikle писал(а):В HL2 - fullscreen, а у меня окно, развёрнутое на весь экран.
ger_kar писал(а):А fullscreen труднее реализовать
Mikle писал(а):Так это же мой порт DX9 для VB6.
Хакер писал(а):Вот где сущее зло!
Хакер писал(а):Mikle к COM относится с позицией «не знаю и знать не хочу». Правильно?
Хакер писал(а):Вообще, конечно, код чудовищно плох.
Mikle писал(а):Ты уверен, что это в действительности и есть причина проблем? Или будет как с DoEvents?
Mikle писал(а):В какой-то мере правильно. То есть можно было бы сделать COM-враппер, наподобие dx8vb.dll. Я этого НЕ МОГУ потому, что не знаю COM - да. Но я этого и НЕ ХОЧУ, ибо есть ПРИЧИНА:
В Win9x было достаточно положить библиотеку в папку проекта, и она работала.
В Win2k-XP появилась с виду невинная необходимость регистрации с помощью regsvr32.
В Висте и Win7 оказалось, что зарегистрировать не так уж просто, нужны админские права. Это было и в XP, но не было так актуально - все сидели под админом.
Можно, конечно, задействовать чистый COM без ActiveX, но в VB6 нет таких ЛЕГАЛЬНЫХ возможностей, одной TLB будет мало, в DX SDK кроме ссылок на функции в DLL из состава DX9 есть много кода, который придётся-таки запекать в DLL.
Mikle писал(а):есть много кода, который придётся-таки запекать в DLL.
Mikle писал(а):Что ещё?
Неплохо бы эту фитчу осветить на страницах форума, ибо это уже давно назревшая насущная необходимость, а то кроме того, что фитча SxS есть, доподлинно как она работает в плане взаимодействия с COM, особо никто не представляет, так как сама фитча довольно мутная для понимания.Хакер писал(а):И кстати, в отрыве от темы, ты забыл о такой «прекрасной» фиче, как использование ActiveX-библиотек без регистрации (благодаря подсистеме SxS).
Хакер писал(а):скоро я представлю на суд публики технологию статической линковки внешних сущностей к VB-проекту.
Mikle писал(а):"Сущности" - это в том числе COM классы?
Mikle писал(а):Немного отвлечённый вопрос по TLB - если описать в нём DX9 интерфейсы, то будет ли корректно работать сборщик мусора при уничтожении ссылок на объекты, созданные по таким интерфейсам? Почему спрашиваю - в микрософтовском dx8vb.dll это работало криво - если ссылке присваивать новое значение с помощью Set - то старый объект уничтожался (если на него не осталось других ссылок). Но, если ссылку передаём ByRef параметром, и ей присваивается новое значение таким образом, то неуничтоженный объект продолжал висеть в памяти, нужно было не забывать перед этим писать Set Ex = Nothing, но это тоже некрасиво, и даже опасно - есть ф-ции, которые создают новый объект не всегда, а при определённых обстоятельствах, иначе должно остаться старое значение - а мы его уже уничтожили. Могу дать пример, если непонятно объяснил.
Хакер писал(а):Линковать внешние COM-классы — это какая-то глупость. COM-классы надо реализовывать на VB
Хакер писал(а):Лучше действительно пример
Хакер писал(а):ты в своём коде большой любитель использования DAN-ссылок. Видимо, как и прочие заблуждающиеся, считаешь это аналогом объявления-с-инициализацией.
Mikle писал(а):Но ведь я так и сделал в dx_vb!
Mikle писал(а):Что такое "DAN-ссылка" - яндекс молчит.
Mikle писал(а):Если это As New - то я знаю, что это отложенная инициализация при первом обращении, причём снова инициализируется при обращении даже если принудительно уничтожить.
А как это вообще можно проверить? Если переменной присвоена ссылка на другой объект, то связь с первоначальным уже ведь утрачена. Можно конечно проверять с помощью отладчика OllyDbg, но это жутко медленно, нудно и непроизводительно. Mikle ты как проверял?Mikle писал(а):Но, если ссылку передаём ByRef параметром, и ей присваивается новое значение таким образом, то неуничтоженный объект продолжал висеть в памяти
ger_kar писал(а):А как это вообще можно проверить?
Mikle писал(а):Запустить диспетчер задач и смотреть на расход памяти, вот пример, тут 8 раз в секунду создаётся новый меш на ту же ссылку, память течёт, если раскоментировать
Хакер писал(а):Это вообще ничего не означает, и полагаться на это не нужно.
Mikle писал(а):Дело в том, что dx8vb - это как раз TLB в DLL
Mikle писал(а):d3dx8 - это не обёртка, а надстройка над DirectX, никак не относящаяся к dx8vb. Она так же доступна из C++, работает даже если удалить dx8vb.dll.
Mikle писал(а):Я не утверждал, и даже не предполагал, что косячит непосредственно метод ID3DX8::CreateText, я предположил, что это следствие объявления метода через tlb.
Mikle писал(а):Возможно, действительно, над этими методами есть ещё некая обёртка, написанная именно для dx8vb, тогда, да, есть вероятность, что накосячили там.
Хакер писал(а):где MSDN-овская дока на функцию CreateText? Как она официально называется в D3DX? Я ничего не могу найти.
Хакер писал(а):почему ты уже столько лет не хочешь пойти правильным путём и просто сделать TLB-шку для DX9? Неужели настолько неохотно изучать COM вообще и IDL в частности?
Mikle писал(а):Этого не было в MSDN, это есть в dx8vbsdk, сейчас убрали с сайта M$, но в сети найти не сложно.
Хакер писал(а):Мне интересна не сама CreateText, а та D3DX-овская функция из lib-ки, которую, по твоему, вызывает CreateText.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1