Как установить и прочитать контакты на параллельном порту из C ++? - PullRequest
4 голосов
/ 13 февраля 2011

Я помогаю другу завершить последний годовой проект, в котором у него есть схема, которую мы хотим включить и выключить с помощью программы на C ++.

image of what i want

Сначала я думал, что это будет легко, но мне не удалось реализовать эту программу.Основная проблема в том, что

  • Windows XP и выше не разрешают прямой доступ к оборудованию, поэтому некоторые веб-сайты предлагают мне написать драйвер или найти драйвер.
  • Я также просматривал некоторые проекты в Интернете, но они, похоже, работают для Windows XP, но не работают для Windows 7.
  • Кроме того, большинство проектов были написаны на VB или C #, которые мне не знакомыс.

Вопрос:

  • Существует ли подходящий драйвер для Windows XP и Windows 7, и если да, то как я могу его использовать?в моем коде?(фрагменты кода приветствуются)
  • Существует ли кроссплатформенный способ взаимодействия с параллельными портами?

Ответы [ 2 ]

3 голосов
/ 13 февраля 2011

Посмотрите на кодпроект: здесь , здесь и здесь .Вы найдете сокровища.

Первая ссылка работает для Windows 7 - как 32-битная, так и 64-битная.

3 голосов
/ 13 февраля 2011

Вам не нужно писать драйвер или что-то еще - вы просто вызываете CreateFile с именем файла, например "LPT1", чтобы открыть дескриптор параллельного порта, и тогда вы можете использоватьWriteFile для записи данных в него.Например:

HANDLE parallelPort = CreateFile("LPT1", GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if(parallelPort == INVALID_HANDLE_VALUE)
{
    // handle error
}
...
// Write the string "foobar" (and its null terminator) to the parallel port.
// Error checking omitted for expository purposes.
const char *data = "foobar";
WriteFile(parallelPort, data, strlen(data)+1, NULL, NULL);
...
CloseHandle(parallelPort);
...