Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рисование в чужом окне 
:(
    Опции темы
bigbuka
Дата 5.11.2010, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 1.10.2009

Репутация: нет
Всего: нет



Долгими мучениями дизасемблера чужого кода (игрушки) нашел адрес где хранится IDirect3DDevice9 игры
щас решил заняться тем что попробовать нарисовать что-то в окне этой игры..   для этого написал dll ....почему-то даже текст не полчучатеся нормально ввести... он ли бо мигает либо искажается как-то и в итоге игра валится с ошибкой IDirect3DDevice9::Present failed 
делал это так 


Код

void MYinit();
void MYExit();
bool stop=false;
IDirect3DDevice9 *myDevicePointer = *(IDirect3DDevice9**)0x06737268;
BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:MYinit();break;
    case DLL_THREAD_ATTACH:break;
    case DLL_THREAD_DETACH:break;
    case DLL_PROCESS_DETACH:MYExit();break;
        
    }
    return TRUE;
}
DWORD IDThread;
void render();
HANDLE HThread;
void MYinit()
    {
        
        
        HThread=CreateThread(NULL, 0 ,(LPTHREAD_START_ROUTINE)render, NULL, NULL, &IDThread);
        
    }
#define FVF_COLOR (D3DFVF_XYZ | D3DFVF_DIFFUSE)
#define FVF_NORMAL_TEX (D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1)
struct CUSTOMVERTEX
{
    FLOAT x, y, z;    // from the D3DFVF_XYZRHW flag
    DWORD color;    // from the D3DFVF_DIFFUSE flag
};
void render()
    {
    CUSTOMVERTEX vertices[] =
    {
        { 0.0f, 0.5f, 0.3f,  D3DCOLOR_XRGB(0, 0, 255), },
        { 0.0f, 0.4f, 0.2f, D3DCOLOR_XRGB(0, 255, 0), },
        { 0.0f, 0.3f, 0.1f, D3DCOLOR_XRGB(255, 0, 0), },
    };

 


LPD3DXFONT g_Font = NULL; //font object
D3DXFONT_DESC FontDesc = {24,
                          0,
                          400,
                          0,
                          false,
                          DEFAULT_CHARSET,
                          OUT_TT_PRECIS,
                          CLIP_DEFAULT_PRECIS,
                          DEFAULT_PITCH,
                          L"Arial"};
RECT FontPosition;
FontPosition.top = 330;
FontPosition.left = 330;
FontPosition.right = 330+640;
FontPosition.bottom = 330+480;
D3DXCreateFontIndirect(myDevicePointer,&FontDesc,&g_Font);
        while(!stop)
            {
         myDevicePointer->BeginScene();
g_Font->DrawText(NULL,
                   L"Текстик....",
                   -1,
                   &FontPosition,
                   DT_CENTER,
                   0xffffffff); 

    myDevicePointer->EndScene();
        Sleep(1);
            }
    }
void MYExit()
    {
        stop=true;
        
    }


Это сообщение отредактировал(а) bigbuka - 6.11.2010, 15:03
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0381 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.