有关使用窗口API的问题 [英] A question about using window API
本文介绍了有关使用窗口API的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
为什么无法打开添加的打印机"A"?
#include >< windows.h >
#include < winspool.h >
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
HANDLE hprinter = 0 ;
DEVMODE DevMode = { 0 };
PRINTER_DEFAULTS printerDe = { 0 ,& DevMode,PRINTER_ACCESS_USE};
LPSTR printer_name [ 5 ];
printer_name [ 0 ] = " ;
PRINTER_INFO_2 pPrinter;
pPrinter.pPrinterName = " ;
pPrinter.pPortName = " ;
pPrinter.pDriverName = " ;
pPrinter.pPrintProcessor = " ;
pPrinter.pServerName = NULL;
pPrinter.pShareName = NULL;
pPrinter.pComment = NULL;
pPrinter.pLocation = NULL;
pPrinter.pDevMode = NULL;
pPrinter.pSepFile = NULL;
pPrinter.pDatatype = NULL;
pPrinter.pParameters = NULL;
LPPRINTER_INFO_2 pPrinter2 =& pPrinter;
hprinter = AddPrinter(NULL, 2 ,(LPBYTE)pPrinter2);
INT i = 0 ;
如果(!OpenPrinter(printer_name [i],& hprinter,& printerDe))
{
MessageBox(NULL," ," 打开",MB_OK);
}
</winspool.h></windows.h>
解决方案
if(!OpenPrinter(printer_name[i],&hprinter,&printerDe))
为什么使用下标([i]
)引用字符串?在尝试实现诸如此类的更高级的API调用之前,您最好花一些时间使用C/C ++的语言基础知识(指针,数组,函数,循环等).
>
Why the added printer "A" cannot be opened?
#include <windows.h>
#include <winspool.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
HANDLE hprinter=0;
DEVMODE DevMode={0};
PRINTER_DEFAULTS printerDe={0,&DevMode,PRINTER_ACCESS_USE};
LPSTR printer_name[5];
printer_name[0]="A";
PRINTER_INFO_2 pPrinter;
pPrinter.pPrinterName="A";
pPrinter.pPortName="LPT1:";
pPrinter.pDriverName="B";
pPrinter.pPrintProcessor="C";
pPrinter.pServerName=NULL;
pPrinter.pShareName=NULL;
pPrinter.pComment=NULL;
pPrinter.pLocation=NULL;
pPrinter.pDevMode=NULL;
pPrinter.pSepFile=NULL;
pPrinter.pDatatype=NULL;
pPrinter.pParameters=NULL;
LPPRINTER_INFO_2 pPrinter2=&pPrinter;
hprinter=AddPrinter(NULL,2,(LPBYTE)pPrinter2);
INT i=0;
if(!OpenPrinter(printer_name[i],&hprinter,&printerDe))
{
MessageBox(NULL,"Fail Open","open",MB_OK);
}
</winspool.h></windows.h>
解决方案
if(!OpenPrinter(printer_name[i],&hprinter,&printerDe))
Why are you using a subscript ([i]
) to reference a string? You would be better spending some more time with the language basics of C/C++ (pointers, arrays, functions, loops, etc) before trying to implement a more advanced API call such as this.
这篇关于有关使用窗口API的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文