
У меня возникли проблемы при попытке запустить кучу старых 16-битных приложений в Windows 2008 Server. Приложения работали нормально до Windows 2003 Server, но когда я пытаюсь печатать из любого из них, все они выдают ошибки печати (Невозможно создать драйвер принтера / Ошибка TERM / и т. д.)
- Порт LPT1 перенаправляется на общий принтер через NET USE LPT1 \ServerName\SharedPrinter
- DIR > LPT1 (или любое перенаправление оболочки на принтер) работает нормально.
- Я использую учетную запись администратора, так что проблем с правами доступа быть не должно, верно?
Чтобы воспроизвести поведение, я сделал небольшую тестовую программу на языке C (TCC 1.01 для DOS). Она отлично работает в XP / 2003 Server, но на 2008 Server она показывает открытие дескриптора (5), но когда пытается записать в этот дескриптор, выдает ошибку (Write fault error writing device LPT1, Abort, Retry, Ignore, Fail)
#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;
}
Есть какие-нибудь подсказки?
ТИА, Пабло
решение1
Я думаюэта темарешает вашу проблему. Ключевой шаг — использовать пул принтеров вместо использования сети.
2) Откройте свойства принтера (в Vista откройте от имени администратора)
3) Включите «Пул принтеров» (на вкладке «Порты»)
4) В дополнение к уже выбранному (например, USB), также выберите «LPT1:»
5) Нажмите «Применить».