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

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

  • LPT1端口通过NET USE LPT1 \ ServerName \ SharedPrinterredirect到共享打印机
  • DIR> LPT1(或任何shellredirect到打印机)工作正常。
  • 我正在使用pipe理员帐户,所以它不应该是一个权限问题,对不对?

为了重现行为,我在C(TCC 1.01 for DOS)中做了一个小的testing程序。 它在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,Pablo

我认为这个线程解决了你的问题。 关键的一步是使用打印机池而不是networking使用。

2)打开打印机属性(在Vista中,以pipe理员身份打开)

3)打开“打印机池”(在“端口”选项卡下)

4)除了已经select的内容(例如USB)之外,还可以select“LPT1:”

5)点击应用