我用打印机添加向导 添加我的打印机(.inf文件) 系统把我的驱动安装到w32x86\3目录
但是我用AddPrinterDriver 函数添加我的驱动 却被添加到w32x86\0目录(导致AddPrinter函数无法添加打印机)
我用rundll32 printui.dll,PrintUIEntry来安装我的驱动结果提示我的驱动和系统版本不兼容(DDK下XP版本编译)
AddPrinterDriver 操作代码:
- C/C++ code
char lpBuffer[MAX_PATH];
DWORD uSize=0;
GetPrinterDriverDirectory(NULL,"Windows NT x86",1,(LPBYTE)lpBuffer,MAX_PATH,&uSize);
printf("%s\n",lpBuffer);
//GetCurrentDirectory((DWORD)MAX_PATH,lpBuffer);
//配置文件
char lpConfigFilePath[MAX_PATH];
lstrcpy(TEXT(lpConfigFilePath),TEXT(lpBuffer));
lstrcat(TEXT(lpConfigFilePath),TEXT("\\driver\\WZP.INI"));
printf("%s\n",lpConfigFilePath);
//数据文件
char lpDataFilePath[MAX_PATH];
lstrcpy(TEXT(lpDataFilePath),TEXT(lpBuffer));
lstrcat(TEXT(lpDataFilePath),TEXT("\\driver\\WZP.GPD"));
printf("%s\n",lpDataFilePath);
//驱动文件
char lpDriverPath[MAX_PATH];
lstrcpy(TEXT(lpDriverPath),TEXT(lpBuffer));
lstrcat(TEXT(lpDriverPath),TEXT("\\driver\\WZP.DLL"));
printf("%s\n",lpDriverPath);
ZeroMemory(&di3, sizeof(DRIVER_INFO_3));
di3.cVersion = 0x03;
di3.pConfigFile =lpConfigFilePath;
di3.pDataFile =lpDataFilePath;
di3.pDependentFiles = TEXT("WZP.DLL\0WZP.INI\0WZP.GPD\0\0");
di3.pDriverPath = lpDriverPath;
di3.pEnvironment = TEXT("Windows NT x86");
di3.pHelpFile = NULL;
di3.pMonitorName = NULL;
di3.pName = TEXT("WZP");
di3.pDefaultDataType = NULL;//TEXT("RAW");
if(!AddPrinterDriver(NULL, 3, (LPBYTE)&di3))
{
printf("error:%d\n",GetLastError());
}
else
printf("add driver succeed\n");
我知道打印驱动版本的问题,但是不晓得怎么控制,那是我驱动的问题呢,还是我安装驱动时候出现的问题?