从Windows 2008 Server中的16位应用程序打印时出错

时间:2010-09-08 16:35:26

标签: windows printing windows-server-2008

我在尝试在Windows 2008 Server中运行一堆旧的16位应用程序时遇到问题。 应用程序运行良好,直到Windows 2003 Server,但当我尝试从任何一个打印 它们都显示打印错误(无法创建打印机驱动程序/ TERM错误/等)

  • LPT1端口通过NET USE LPT1 \ ServerName \ SharedPrinter重定向到共享打印机
  • DIR> LPT1(或任何shell重定向到打印机)工作正常。
  • 我正在使用管理员帐户,因此它不应该是权限问题,对吧?

为了重现这种行为,我用C做了一个小测试程序(TCC 1.01 for DOS)。它运行正常 在XP / 2003 Server中,但是在2008 Server上它显示了句柄开放(5)但是在尝试时 写入该句柄,发出错误(写错误写入设备LPT1,中止,重试, 忽略,失败)

#include <io.h>
#include <fcntl.h>
#include <sys\stat.h>

int main(void)
{
 int handle, status;
 char* sbuff;

 handle = open("LPT1", O_WRONLY, S_IFBLK);
 printf("%d\n", handle);

 if (!handle)
 {
    printf("open failed\n");
    exit(1);
 }

 sbuff = "[print test]\n";
 write(handle, sbuff, strlen(sbuff));

 close(handle);
 getch();

 return 0;
}

任何线索?

TIA, 巴勃罗

1 个答案:

答案 0 :(得分:0)

Mike A - 我发现语法'print / d:{lpt?} {filename}'在Win2008上不起作用,而不是在16位应用程序或命令行中。多年来一直支持这种语法,我们在10台Win2003服务器上运行它。可能在Win2008中有一个配置设置,使其与以前版本的Windows语法兼容? BTW,这里是2012年4月更新的Microsoft Tech Bulletin,其中列出了与Win2008兼容的语法... http://technet.microsoft.com/en-us/library/cc731623