摘要:
用Nvidia的PerfHud剖析Direct3D程序有两个关键步骤,一是找到CreateDevice()的调用位置,二是修改传入CreateDevice()的前两个参数使之满足PerfHud的要求,在一般的系统上第一个参数传1,第二个参数传2,也可以将应用程序原来传入的前两个参数分别加一。定位CreateDevice()有两种方式,一是动态跟踪,二是静态分析。动态跟踪就是用调试器起动应用程序,在D3d9.dll中的CreateDevice()函数处下断点。动态跟踪具有速度快、定位准确的特点,是首选。但很多时候网络游戏的客户端都是通过另一个程序起动的(比如自动更新程序),无法由调试器直接起动,也就无法动态跟踪,这时可以考虑静态分析的方法,后面本文会有详细介绍。
阅读全文