该楼层疑似违规已被系统折叠隐藏此楼查看此楼
#include
#include
#include
intPrint(char*szPrinterName,char*szBuffer)//szBuffer是我们希望发送到打印机的数据缓冲
{
HANDLEhPrinter;//打印机句柄
intiLen=strlen(szBuffer);//发送数据的长度
DWORDdwWritten;//已经向打印机写了多少
if(OpenPrinter(szPrinterName,&hPrinter,NULL))
//Open打印机并赋给一个句柄(已经保存在hPrinter)
{
DOC_INFO_1Info;//文档信息
memset(&Info,0,sizeof(Info));
Info.pDocName="MyPrintJob";
//文档名(whichisshowninthePrintManager)
Info.pOutputFile=NULL;
//不须要向一个文件写,设为NULL
Info.pDatatype="RAW";
//数据以RAW格式发送(Win9x和WinNT都支持RAW和EMF格式,WinNT还支持TEXT格式
if(!StartDocPrinter(hPrinter,1,(LPBYTE)&Info))//文档开始
return0;
//告诉打印机开始新页
StartPagePrinter(hPrinter);
//向打印机写数据
if(!WritePrinter(hPrinter,szBuffer,iLen,&dwWritten))
{
printf("printerror!");
//当发送数据时出现错误
//用最后的错误指出发生了什么错误
}
EndPagePrinter(hPrinter);//告诉打印机已经完成当前页
if(!EndDocPrinter(hPrinter))//文档结束
{
printf("documenthavenotend!");
return0;
}
ClosePrinter(hPrinter);//关闭打印机
return1;
}
else
{
return0;
}
}
intAPIENTRYWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow)
{
FILE*fp;
charbuffer[254];
intlen;
char*printer="EPSONEPL-6100LAdvanced";
char*filename="c:\\boot.ini";
if((fp=fopen(filename,"r"))==NULL)
{
printf("cannotopenfile!");
return0;
}
len=strlen(fp);
fgets(buffer,len,fp);
Print(printer,buffer);
return0;
}
//用lcc编译成功,但是打印时打印列表里显示错误,然后就自动退出打印,很是郁闷.请问怎么解决