Прошу прощения за мое ламерство и за может глупый вопрос, но эта проблемма волнует не только меня, а и очень большего круга людей. Я бы хотел заставить корректно работать dxgi.dll из-под Висты на ХР. DependencyWalker пишет что нехватает except_handler4_exception в msvcrt.dll для запуска (dxgi.dll из Vista build 5231), когда я переписал except_handler4_exception в except_handler3 с помощью HEX редактора, то у меня пошел старт приложения и после некоторого времени, еще до прорисовки приложения выскакивает ошибка в логе DependencyWalker: 00:00:19.453: Second chance exception 0xC0000005 (Access Violation) occurred in "c:\windows\system32\DXGI.DLL" at address 0x69C25F8F by thread 5 "TaskThread1". Прошу умных людей помочь!
Хочу добавить. А возможно ли заставить Вистовский msvcrt.dll работать на ХР/2003 и как? Я просто пробовал его перезаписать, то потом у меня BSOD выскакивает, как его избежать? К счастью мне удалось интегрировать gdi32.dll из Vista build 5219 и Windows 2003 c ним прекрасно работает, а вот версии gdi32.dll с более поздней висты не хотят запускать Windows, снова ВSOD.
Вот DependencyWalker пишет, где примерно совершается ошибка в этих строках лога(ИМХО): 00:00:19.203: Lag in RDSound3D tool buffer Driver:23040, Renderer:23040 00:00:19.391: LoadLibraryA("gdi32.dll") called from "c:\windows\system32\DXGI.DLL" at address 0x69C2DF6F by thread 5 "TaskThread1". 00:00:19.391: LoadLibraryA("gdi32.dll") returned 0x77C10000 by thread 5 "TaskThread1". 00:00:19.407: GetProcAddress(0x77C10000 [c:\windows\system32\GDI32.DLL], "D3DKMTOpenAdapterFromHdc") called from "c:\windows\system32\DXGI.DLL" at address 0x69C2DFAB and returned 0x77C1D27A by thread 5 "TaskThread1". 00:00:19.407: GetProcAddress(0x77C10000 [c:\windows\system32\GDI32.DLL], "D3DKMTCloseAdapter") called from "c:\windows\system32\DXGI.DLL" at address 0x69C2DFC2 and returned 0x77C1D22D by thread 5 "TaskThread1". 00:00:19.407: GetProcAddress(0x77C10000 [c:\windows\system32\GDI32.DLL], "D3DKMTQueryAdapterInfo") called from "c:\windows\system32\DXGI.DLL" at address 0x69C2DFE9 and returned 0x77C1D266 by thread 5 "TaskThread1". 00:00:19.407: GetProcAddress(0x77C10000 [c:\windows\system32\GDI32.DLL], "D3DKMTOpenAdapterFromHdc") called from "c:\windows\system32\DXGI.DLL" at address 0x69C2DD5A and returned 0x77C1D27A by thread 5 "TaskThread1". 00:00:19.407: GetProcAddress(0x77C10000 [c:\windows\system32\GDI32.DLL], "D3DKMTCloseAdapter") called from "c:\windows\system32\DXGI.DLL" at address 0x69C2DD6B and returned 0x77C1D22D by thread 5 "TaskThread1". 00:00:19.422: GetProcAddress(0x77C10000 [c:\windows\system32\GDI32.DLL], "D3DKMTQueryAdapterInfo") called from "c:\windows\system32\DXGI.DLL" at address 0x69C2DD86 and returned 0x77C1D266 by thread 5 "TaskThread1". 00:00:19.422: LoadLibraryA("gdi32.dll") called from "c:\windows\system32\DXGI.DLL" at address 0x69C2433F by thread 5 "TaskThread1". 00:00:19.422: First chance exception 0xC0000005 (Access Violation) occurred in "c:\windows\system32\DXGI.DLL" at address 0x69C25F8F by thread 5 "TaskThread1" Это может быть, что я игру стартую требующую DirecX10, без аппаратной поддержки DX10 видеокартой, я чет сомниваюсь.
Svyatpro Почитай про папку \WINDOWS\WinSxS Именно она отвечает за функционирование приложений с разными версиями системных dll msvcrt там тоже присутствует. Правда она придумана для совместимости со старыми версиями, но механизм-то можно и по другому использовать. keYMax Это из той же области сказок Микрософт, что 2000-й не работает на П-2(через год появился патч) и что драйвер USB-2 для старых мамок низзя под 2000-м использовать. Микрософт заставляет переходить на новые ОС не совсем корректными способами...
valterg Ну раз уж вы заговорили про сказки. Дайте мне 100% рабочее dx10 под XP и чтобы я играл в игрульки, причем с инсталером а ля один клик. Ну а раз такого нет, то остальное все из области там припарка тут припарка. Имхо для извращенцев пытающихся что-то доказать.
Спасибо, но я уже все-равно пробовал ищменять внутренюю версию Вистовской msvcrt на версию msvcrt из 2003 ничего не помогло.
К сожалению после подмены версии msvcrt.dll в WinSxS, чудо не произошло, все-равно BSOD. Что теперь делать? Заранее благодарен.
У видеоконтроллеров под DX10 есть своя виртуальная память, работой которой управляет драйвер. В DX9 и более ранних никакой виртуальщины не было. Естественно, видеодрайверы под ХР и другие оси до Висты не поддерживают необходимые аппаратные функции графических процессоров, а значит, и полноценная работа ДХ10 невозможна в принципе. Что технически можно написать драйвер и всё прочее, корректно реализующий поддержку ДХ10 в Хрюше, никто не спорит. Но ни Невидия, ни АМД этого не делают и делать не собираются. А значит, ДХ10 по-настоящему работать будет только в Висте.