DRIVER_INFO_3 di;
memset(&di, 0, sizeof(di));
di.cVersion = 0x30000;
di.pEnvironment = "Windows NT x86";
di.pName = PRINTDRIVERNAME;
di.pDefaultDataType = "NT EMF 1.008";
char Current_path[MAX_PATH];
char temp_path[MAX_PATH];
GetCurrentDirectory(MAX_PATH,Current_path);
strcpy(temp_path,Current_path);
strcat(temp_path,"\\i386\\UNIDRVUI.dll");
m_CopyDir = CopyFile(temp_path,driverUIPath,FALSE);
strcpy(temp_path,Current_path);
strcat(temp_path,"\\i386\\UNIDRV.dll");
m_CopyDir = CopyFile(temp_path,driverPath,FALSE);
strcpy(temp_path,Current_path);
strcat(temp_path,"\\i386\\vprinter.GPD");
m_CopyDir = CopyFile(temp_path,dataPath,FALSE);
strcpy(temp_path,Current_path);
strcat(temp_path,"\\i386\\UNIDRV.HLP");
m_CopyDir = CopyFile(temp_path,helpPath,FALSE);
strcpy(temp_path,Current_path);
strcat(temp_path,"\\i386\\UNIRES.DLL");
m_CopyDir = CopyFile(temp_path,UNIRES,FALSE);
strcpy(temp_path,Current_path);
strcat(temp_path,"\\i386\\vprinter.dll");
m_CopyDir = CopyFile(temp_path,vprinter,FALSE);
strcpy(temp_path,Current_path);
strcat(temp_path,"\\i386\\STDNAMES.GPD");
m_CopyDir = CopyFile(temp_path,STDNAMES,FALSE); GetPrinterDriverDirectory(NULL,"Windows NT x86",1,(LPBYTE)m_Path,m_Dir_Size,&m_dir);
di.pConfigFile = "C:\\WINDOWS\\system32\\spool\\drivers\\w32x86\\UNIDRVUI.dll";
di.pDriverPath = "C:\\WINDOWS\\system32\\spool\\drivers\\w32x86\\UNIDRV.dll";
di.pDataFile ="C:\\WINDOWS\\system32\\spool\\drivers\\w32x86\\vprinter.GPD";
di.pHelpFile="C:\\WINDOWS\\system32\\spool\\drivers\\w32x86\\UNIDRV.HLP";
di.pDependentFiles="C:\\WINDOWS\\system32\\spool\\drivers\\w32x86\\STDNAMES.GPD\0C:\\WINDOWS\\system32\\spool\\drivers\\w32x86\\vprinter.dll\0C:\\WINDOWS\\system32\\spool\\drivers\\w32x86\\UNIRES.DLL\0\0";
int rc = AddPrinterDriver(NULL, 3, (LPBYTE)&di);
if(!rc)
{
long code = GetLastError();
}上面是我写的代码,所依赖的文件都在指定的目录下,但是AddPrinterDriver 后,rc依然报错,127 说找不懂指定模块,请问怎么回事?如何解决啊?
memset(&di, 0, sizeof(di));
di.cVersion = 0x30000;
di.pEnvironment = "Windows NT x86";
di.pName = PRINTDRIVERNAME;
di.pDefaultDataType = "NT EMF 1.008";
char Current_path[MAX_PATH];
char temp_path[MAX_PATH];
GetCurrentDirectory(MAX_PATH,Current_path);
strcpy(temp_path,Current_path);
strcat(temp_path,"\\i386\\UNIDRVUI.dll");
m_CopyDir = CopyFile(temp_path,driverUIPath,FALSE);
strcpy(temp_path,Current_path);
strcat(temp_path,"\\i386\\UNIDRV.dll");
m_CopyDir = CopyFile(temp_path,driverPath,FALSE);
strcpy(temp_path,Current_path);
strcat(temp_path,"\\i386\\vprinter.GPD");
m_CopyDir = CopyFile(temp_path,dataPath,FALSE);
strcpy(temp_path,Current_path);
strcat(temp_path,"\\i386\\UNIDRV.HLP");
m_CopyDir = CopyFile(temp_path,helpPath,FALSE);
strcpy(temp_path,Current_path);
strcat(temp_path,"\\i386\\UNIRES.DLL");
m_CopyDir = CopyFile(temp_path,UNIRES,FALSE);
strcpy(temp_path,Current_path);
strcat(temp_path,"\\i386\\vprinter.dll");
m_CopyDir = CopyFile(temp_path,vprinter,FALSE);
strcpy(temp_path,Current_path);
strcat(temp_path,"\\i386\\STDNAMES.GPD");
m_CopyDir = CopyFile(temp_path,STDNAMES,FALSE); GetPrinterDriverDirectory(NULL,"Windows NT x86",1,(LPBYTE)m_Path,m_Dir_Size,&m_dir);
di.pConfigFile = "C:\\WINDOWS\\system32\\spool\\drivers\\w32x86\\UNIDRVUI.dll";
di.pDriverPath = "C:\\WINDOWS\\system32\\spool\\drivers\\w32x86\\UNIDRV.dll";
di.pDataFile ="C:\\WINDOWS\\system32\\spool\\drivers\\w32x86\\vprinter.GPD";
di.pHelpFile="C:\\WINDOWS\\system32\\spool\\drivers\\w32x86\\UNIDRV.HLP";
di.pDependentFiles="C:\\WINDOWS\\system32\\spool\\drivers\\w32x86\\STDNAMES.GPD\0C:\\WINDOWS\\system32\\spool\\drivers\\w32x86\\vprinter.dll\0C:\\WINDOWS\\system32\\spool\\drivers\\w32x86\\UNIRES.DLL\0\0";
int rc = AddPrinterDriver(NULL, 3, (LPBYTE)&di);
if(!rc)
{
long code = GetLastError();
}上面是我写的代码,所依赖的文件都在指定的目录下,但是AddPrinterDriver 后,rc依然报错,127 说找不懂指定模块,请问怎么回事?如何解决啊?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货