我正在使用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/

10-12 01:36