最近研究某游戏的时候发现通过D3DXCreateTextureFromFileInMemoryEx这个函数加载的dds贴图 于是乎 就各种找资料 各种不知道怎么用的。 对d3d不熟悉 各种找教程 今天终于加载成功了。 我的目的很简单 就在我的demo里面可以加载成功 然后进行反汇编 去看游戏的 。。。
贴出代码
LPDIRECT3DTEXTURE9 g_pTexture = NULL; // 纹理接口对象
void Initializebmp()
{
FILE* pFile = fopen("E:\\dxts1.jpg", "rb");
fseek(pFile, 0, SEEK_END);
int FileLen = ftell(pFile);
fseek(pFile, 0, SEEK_SET);
char* pData = new char[FileLen];
fread(pData, FileLen, 1, pFile);
D3DXIMAGE_INFO info;
D3DCOLOR colorkey = 0x000000ff;
D3DXCreateTextureFromFileInMemoryEx(
g_pd3dDevice,
pData,
FileLen,
0,
0,
0,
0,
D3DFMT_UNKNOWN,
D3DPOOL_MANAGED,
D3DX_DEFAULT,
D3DX_DEFAULT,
D3DCOLOR_XRGB(0, 0, 0),
&info,
NULL,
&g_pTexture);
}
其实到最后才发现 不管是通过什么方法加载的