Запись драйверов в C#

Попробуйте:

int number;

cin >> number;

char firstCharacterOfNames;
cin >> firstCharacterOfNames;  // This will discard all leading white space.
                               // including new-line if there happen to be any.

cin.unget();                   // Put back the first character of the name.

std::string  names;
std::getline(cin, names);      // Read the names;

Альтернативно. Если вы знаете, что число и имена всегда будут на разных строках.

cin >> number;
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); 
std::getline(cin, names);
29
задан Gaurav Aroraa 15 June 2009 в 05:33
поделиться

5 ответов

Просто ты не можешь. C # создает промежуточный язык, который интерпретируется виртуальной машиной (.NET). Все это работает в пользовательском режиме, а драйверы WDM - в режиме ядра.

Существует DDK, но он также не поддерживается в VStudio (но вы можете сделать проект makefile для компиляции).

Разработка драйверов сложна, склонна к появлению синего экрана и требует хорошего понимания C, структур ядра и работы с мемами. Ни один из этих навыков не требуется для C # и .NET, поэтому существует длинный и болезненный путь обучения.

25
ответ дан No hay Problema 14 October 2019 в 07:24
поделиться

Из вашего описания неясно, намереваетесь ли вы разрабатывать драйверы устройств Windows или взаимодействовать с оборудованием через существующие драйверы устройств.

Например, для взаимодействия с устройствами, подключенными к вашему последовательному порту, вам не нужно писать свой собственный драйвер, и фактически вы можете получить к нему доступ через класс .NET SerialPort .

Даже USB-устройства могут быть доступны из пользовательского пространства (и, в конечном счете, из управляемого кода) через такие платформы, как libusb-win32 , WinUSB и т. Д.

8
ответ дан Ilya 14 October 2019 в 07:24
поделиться

На самом деле, вы можете написать некоторые драйверы на C #, если используете UMDF, потому что он работает в пользовательском режиме (см. Начало работы с UMDF ). Но я рекомендую использовать C / C ++.

27
ответ дан Sergey Podobry 14 October 2019 в 07:24
поделиться

Вы не можете писать драйверы на C #; драйверы должны работать с повышенными привилегиями, чтобы иметь возможность взаимодействовать с оборудованием; управляемый код не может быть запущен в соответствующей среде.

1
ответ дан 28 November 2019 в 01:05
поделиться

Вы не можете писать драйверы режима ядра на C # (среда выполнения выполняется в пользовательском режиме, поэтому вы не можете войти в ring0). В этом SO Q / A есть ссылки, которые могут оказаться полезными:

Разработка драйвера C #?

11
ответ дан 28 November 2019 в 01:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: