对函数D3DXCreateFont()的一点疑惑。。
使用这个函数D3DXCreateFont(),一般就是定义一个LPD3DXFONT类型的空指针,然后把这个指针当作参数,
但是D3DXCreateFont()函数都是在一个函数里使用的,而LPD3DXFONT类型的指针是一个全局变量,他怎么可以指向一个局部的数据??
是不是D3DXCreateFont()内部自己维护了一个堆数据? 比如用new???
[解决办法]
如果有地方为ID3DXFont动态开辟内存的话,那一定是写错了。ID3DXFont对象只能由D3DXCreateFont创建,内存分配什么的,都是D3DXCreateFont内部实现的。
D3DXCreateFont内部的工作,你可以这样简化的理解:
HRESULT D3DXCreateFont(LPDIRECT3DDEVICE9 pDevice,...,LPD3DXFONT * ppFont)
{
ID3DXFont* font=new ID3DXFont(pDevice,...);
*ppFont=font;
return (...);
}