调用打印程序会导致应用程序退出时异常
bjyjy 2007-06-19 10:09:41 在使用如下的代码进行打印时,发现当退出应用程序时,会出现异常错误(在NTdll.dll中,无法继续跟踪)
CPrintDialog dlg(FALSE);
if (dlg.DoModal() != IDOK)
return;
HDC hPrintDC = dlg.GetPrinterDC();
ASSERT(hPrintDC);
if (!hPrintDC)
{
MessageBox(L"不能找到打印设备!");
return;
}
DOCINFO docInfo = {0};
int nRet;
docInfo.cbSize = sizeof(DOCINFO);
docInfo.lpszDocName = szDocName;
docInfo.lpszOutput = NULL;
nRet = StartDoc(hPrintDC, &docInfo); // 如果不调用这条语句就没有问题
ASSERT(nRet > 0);
if (nRet <= 0)
{
::MessageBox(NULL, L"打印失败!", L"错误", 0);
DeleteDC(hPrintDC);
return;
}
// EndDoc(hPrintDC);
if (hPrintDC)
DeleteDC(hPrintDC);