我正在使用CreateDC进行打印,传入有效的DEVMODE结构,并返回返回NULL,这表明出现了错误,但GetLastError返回0。
m_hDC = ::CreateDC(L"WINSPOOL", PrinterName, NULL, pDevMode);
if (m_hDC == NULL)
{
throw Exception(GetLastError(), __LINE__, _T(__FILE__));
}
除了一个想法,这对我所有的客户都有效吗?
最佳答案
事实证明,这是不正常的后台处理程序api的问题。
该软件是在64位系统上运行的32位Windows服务。
看来一个32位进程一次只能打印一个用户/ session ,下一个用户必须等待splwow64.exe超时(或杀死它)才能打印。
MS的technote对此进行了介绍。
关于windows - CreateDC失败,错误代码为0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1762213/