首页
社区
课程
招聘
[旧帖] [求助]D3D drawtext写移动的字就崩溃 0.00雪花
发表于: 2012-2-20 22:28 1710

[旧帖] [求助]D3D drawtext写移动的字就崩溃 0.00雪花

2012-2-20 22:28
1710
我已经HOOK 了endscene函数,修改的是虚表。。然后执行的流程是先跳到我的函数里面drawtext。我然后再返回原来的的endscene。

CD3DFont *Font=NULL;

初始化Font 已经在别的地方做过了。我想不断的读取内存里面的两个数据,然后drawtext想实现类似于一个点移动来标出坐标(魔兽);

HRESULT _stdcall My_EndScene(
        LPDIRECT3DDEVICE8 pDxdevice
        )
{

              memcpy(&HeroNext,0xaaaaa,4)//读链表头
        while(HeroNext!=0)//如果还有坐标要读就继续循环
        {
            float x=0,y=0;                                                           
                memcpy(&x,(LPVOID)(OffsetPointAddr+0x78),4);//内存读出坐标,部分偏移计算以及坐标转换略去了,
              
           memcpy(&y,(LPVOID)(OffsetPointAddr+0x7c),4);               

        Font->InitDeviceObjects(pDxdevice);
        Font->DrawText(x,y,D3DCOLOR_ARGB(0xFF, 0xff, 0xff, 0), "●");
/*
这里我把X,Y换为0,0就能正确输出。如果直接写x,y想让点移动。运行中就会崩溃。。求高手解答,这里要怎样写。。。我的目的就是在地图上画出多个点,而且这些点的坐标是我读出来的
是不是这些函数的调用有问题,求高手解答啊。3Q。。就差这一步了,对D3D不太懂啊
*/

        Font->InvalidateDeviceObjects();

。。。
。。。。略去部分了                                                       
            Hero=Hero+0x18;                                                       
         memcpy(&HeroNext,(LPVOID)Hero,4);//下一个英雄
                                                               
        }

      return pfn_endscene(pDxdevice);
};

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 130
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
点是float类型存储的吗
2012-2-20 22:41
0
雪    币: 43
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我是利用写字符的形式,写一个点,传入的坐标当然是浮点型的啊
2012-2-20 22:48
0
游客
登录 | 注册 方可回帖
返回
//