我希望在别人的d3d或opengl程序的画面上显示一些信息,
谁能给个例子?

解决方案 »

  1.   

    这是很难实现的,
    你需要对显卡的驱动程序或编程很了解,
    或者你只能在它的程序内部与opengl绘制同时刷新绘制,
    在外部绘制的话,
    那与Opengl刷新不同步,就会不停的闪
      

  2.   

    我初步的想法是拦截glEnd(),glFlush(),glFinish()等绘制结束标志的函数,用于很简单的opengl程序可以有用,但对于较复杂的程序就不管用了,或许还要考虑坐标或视口问题吧?
    另外d3d实在不知道要拦截什么函数!
    谁有着方面的经验,希望分享一下!先谢了!
      

  3.   

    我还没弄明白,你是在别人EXE程序上改,还是在源文件上改,要是源文件,倒容易。
      

  4.   

    我的方法:
    第一种:一般来说别人的D3D或者OpenGL程序中应该有显示文字的代码,拦截之(利用注入DLL的方法,这又是另外的技术了,不在本文的讨论之内),或者干脆反汇编分析该程序,找到显示信息函数的入口,自己在注入的DLL中调用;
    第二种:调用(或拦截)Direct3DCreate9(D3D_SDK_VERSION)函数,取得D3D的接口,然后,拦截BeginScene()代码(或者在恰当的位置),运行自己的显示函数。当然,还要利用第一种方法中的注入DLL方法;
    第三种:暂时还没有想出来 ^o^;
      

  5.   

    好像听说有外挂程序能够修改 quake3d ,把它修改呈线框模式的
      

  6.   

    很简单,就像alphapaopao(炮炮) 说的外挂http://www.gameres.com/bbs/showthread.asp?threadid=8251