|
|
我最近用D3DXFONT写了一个显示文字的小程序,下面是显示文字的函数:
void ShowText(const char* szText)
{
HFONT hFont;
int nHeight = 30;
int nWeight = FW_NORMAL;
DWORD dwItalic = 0;
DWORD dwUnderlined = 0;
hFont = CreateFont(nHeight, 0, 0, 0, nWeight, dwItalic, dwUnderlined, 0, ANSI_CHARSET, 0, 0, 0, 0, "Times New Roman");
LPD3DXFONT pFont; // 会出问题
D3DXCreateFont(g_pD3DDevice, hFont, &pFont);
RECT rect;
rect.left = 0;
rect.top = 0;
rect.right = 0;
rect.bottom = 0;
pFont->Begin();
pFont->DrawTextA(szText, -1, &rect, DT_CALCRECT, 0);
pFont->DrawTextA(szText, -1, &rect, DT_LEFT, 0xffffffff);
pFont->End();
}
然后我在Render()主循环中调用它,刚运行时正常,但运行了一两分钟后会报错,
但我把 LPD3DXFONT pFont; 换成 static LPD3DXFONT pFont; 或改为全局变量后,
问题消失,似乎是内存泄漏,但不确定,希望各位高手帮帮我,在下先谢过了!! |
|