首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

帮看看,delete出错。到底是神马有关问题?小弟我无解

2013-09-07 
帮看看,delete出错。到底是神马问题?我无解啊void print_function()//遍历本地可用的打印机名称{DWORD dwSi

帮看看,delete出错。到底是神马问题?我无解啊
void print_function()//遍历本地可用的打印机名称
{
DWORD dwSize,dwPrinter;
//将第四参数设置为NULL,第五参数设置为0,是为了从第六参数获取第四参数的默认大小
//(当第五参数小于能存放第四参数结构的大小时候,第六参数就返回存放的大小)
::EnumPrinters(PRINTER_ENUM_LOCAL,NULL,5,NULL,0,&dwSize,&dwPrinter);
   BYTE *pBuffer =new BYTE[dwSize];//申请内存
//当第三参数是5或者2的时候,是遍历所有有效的打印机
   ::EnumPrinters(PRINTER_ENUM_LOCAL,NULL,5,pBuffer,dwSize,&dwSize,&dwPrinter);

if(dwPrinter != 0)
{
PRINTER_INFO_5 *pPrnInfo = (PRINTER_INFO_5*)pBuffer;
    for(int i = 0; i<=(int)dwPrinter; i++)//循环显示遍历得到的可用打印机名称
    {
char *strprnInfo = pPrnInfo->pPrinterName;
MessageBox(NULL,strprnInfo,"印表機名稱",MB_OK);
pPrnInfo++;
    }
}
delete [] pBuffer;
[解决办法]
MessageBox(NULL,strprnInfo,"印表機名稱",MB_OK);  strprnInfo 指针为空了。导致MessageBox错误

热点排行