有关使用窗口API的问题 [英] A question about using window API

查看:51
本文介绍了有关使用窗口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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆