问题描述
调试断言失败(图片)Debug Assertion Failed有问题 当我第二次按对话框上的“打印”按钮时,会发生此问题。 (第一次工作良好) 对话框: Dialog Box
调试代码后,我猜这是我第二次创建DC时引起的。 但是我可以解释为什么,因为更安全,我通过DeleteDC()函数删除了DC。 在下面的代码中,我初始化DC并删除DC时放入了代码片段。
BOOL Druk::StartPrint()
{
//Configuration();
hDC.CreateDC(DriverName,DeviceName,OutputName,NULL);
StartDoc(hDC,NULL);
//StartPage(hDC);
return TRUE;
}
布尔Druk :: ZakonczDruk()
{
EndDoc(hDC);
//EndPage(hDC);
DeleteDC(hDC);
return TRUE;
}
解决方法
看来您正在使用MFC的CDC
类,
hDC.CreateDC(DriverName,DeviceName,OutputName,NULL);
出于对称性考虑,也可以通过该类的方法将其删除:CDC::DeleteDC
hDC.DeleteDC();