0

我正在尝试使用 Ghostscript 和 RedMon 安装一个虚拟打印机,它使用 c++ 打印到 PDF 文件,但是当我尝试编译我的代码时,我得到'XcvData' was not declared in this scope了以下功能:

#include <windows.h>
#include <winspool.h>
BOOL AddPort()
{
    DWORD cbneed,cbstate;
    PBYTE pOutputData;
    HANDLE hXcv = INVALID_HANDLE_VALUE;
    PRINTER_DEFAULTS Defaults = { NULL,NULL,SERVER_ACCESS_ADMINISTER };

    WCHAR pszPortName[]=L"UTReportPDFPort:";
    pOutputData=(PBYTE)malloc(MAX_PATH);

    if(!OpenPrinter((WCHAR*)",XcvMonitor Redirected Port",&hXcv,&Defaults ))
    {
        LPVOID lpMsgBuf;
        GetLastError();
        FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
            NULL, GetLastError(), NULL,(LPTSTR) &lpMsgBuf, 0, NULL );
        ::MessageBox(0,(LPCTSTR)lpMsgBuf,(WCHAR*)"ERROR",MB_OK|MB_ICONINFORMATION);
        free(pOutputData);
        LocalFree( lpMsgBuf );
        return FALSE;

    }
    if(!XcvData(hXcv,L"AddPort",(PBYTE)pszPortName,sizeof(pszPortName),(PBYTE)pOutputData,MAX_PATH,&cbneed,&cbstate))
    {
        LPVOID lpMsgBuf;
        SetLastError(cbstate);
        FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
              NULL, GetLastError(), NULL,(LPTSTR) &lpMsgBuf, 0, NULL );
        ::MessageBox(0,(LPCTSTR)lpMsgBuf,(WCHAR*)"ERROR",MB_OK|MB_ICONINFORMATION);
        LocalFree( lpMsgBuf );
        free(pOutputData);
    }

    free(pOutputData);
    ClosePrinter(hXcv);

    return TRUE;

}

我可以做些什么来在我的 Qt 应用程序上使用 XcvData 函数?

4

0 回答 0