с библиотеками разобрался все уже пофиксил успешно.. теперь сложнее задача. что делать если при любом переключении экрана приложение резко выходит. А пока оно работает оно всегда сверху. Поверх него впринципе ничего не появляется.Мне надо найти место в программе когда нажимаешь на ентер. и от этой точки внимательно протрейсить.. до момента вывода текста на экран. Есть какой дебаггер способный вылезти поверх D3D экрана.. и при этом не снимать с той проги фокус.
Где-то в сторону этих степей: Код (Text): 3D 00010000 CMP EAX, 100 ; WM_KEYDOWN 74 JE ; WM_KEYDOWN_PROC 817D 0C 00010000 CMP DWORD PTR [EBP+C], 100 ; WM_KEYDOWN 74 JE ; WM_KEYDOWN_PROC 837D 10 1B CMP DWORD PTR [EBP+10], 0D ; VK_RETURN 75 JNZ ; VK_RETURN_PROC
Поскольку там DX, то наверняка будет использован DirectInput, т.е. WM_KEYDOWN и близко не будет. PS Кнопочки-то и перезадаваться могут - enter так просто не найдёшь.
Я посмотрел DirectX туториалы keYMax-а и Fasm\Examples\DDraw , там везде WM_KEYDOWN. По-этому пришел к выводу, что такое возможно и в проге Atomic
Для туториалов оконных сообщений вполне достаточно. Но в реальной игрухе приходится нажимать сразу на несколько кнопок, поэтому логика опроса клавы меняется - не ждём пока клавишу нажмут, а проверяем не нажата ли она. В старых DX не было ничего для этого, поэтому GetAsyncKeyState вполне логична. Но сейчас есть всякие IDirectInputDevice8::GetDeviceState - они лучше подходят для игрух, да и отлаживать / искать это сложнее, поэтому IMHO лучше трейсить назад - от вывода текста. Косвенно провернить используемый API можно так: нажать какие-нибудь кнопке на клаве, а потом enter. Если сработает - сообщений точно нет .