|
Январь 23, 2009
05:51 pm - Про MinGW и LPT Многим
известно, что NT-подобные системы не разрешают прямой доступ к портам
ввода/вывода из программ пользовательского уровня. Толи дело было
раньше, под win95, 98, пишешь в свое удовольствие и радуешься. Но эти
версии операционных систем ныне не поддерживаются, да и трудно уже найти
машины под управлением этих осей.
Ниже работающий способ
заставить собраться и функционировать программу с помощью пакета MinGW,
которая сможет работать с портами ввода/вывода на pin-уровне.
#include <stdio.h> #include <conio.h> #include <windows.h>
/* прототипы функций */
typedef short (_stdcall *inpfuncPtr)(short portaddr); typedef void (_stdcall *oupfuncPtr)(short portaddr, short datum);
int main(void) { HINSTANCE hLib; inpfuncPtr inp32; oupfuncPtr oup32;
/* Загружаем необходимую dll-ку */ hLib = LoadLibrary("inpout32.dll");
if (hLib == NULL) { printf("LoadLibrary Failed.\n"); return -1; }
/* получаем адрес функций */
inp32 = (inpfuncPtr) GetProcAddress(hLib, "Inp32");
if (inp32 == NULL) { printf("GetProcAddress for Inp32 Failed.\n"); return -1; }
oup32 = (oupfuncPtr) GetProcAddress(hLib, "Out32");
if (oup32 == NULL) { printf("GetProcAddress for Oup32 Failed.\n"); return -1; }
// дальше просто пример использования функций // их у нас две: // void oup32(short address, short data) // short Inp32(short address)
(oup32)(0x378,0xFF); printf(“0xFF was writed to LPT port\n”);
// при выходе не забыть выгрузить библиотеку FreeLibrary(hLib); return 0; }
Осталось это все оформить в exe-шник: > c++ -o lpt.exe lpt.cpp И запустить получившийся lpt.exe. Ошибок быть не должно. По крайней мере у меня нет.
Собственно все.
PS:
Почему MinGW? Да хотя бы потому, что я линуксоид, ну и потом бесплатно
же ведь и нагляднее. Потом есть такая замечательная штука, как QT,
которая просто уделала мелкомягковскую MFC. В общем вот.
|
Программировать на WinAPI дело еще то. А за QT +1 From: | (Anonymous) |
Date: | Январь 24, 2010 12:25 am none (UTC) |
---|
| | | (Link) |
|
Долго искал эту информацию, именно на MinGW и именно под винду. Очень помогли, большое спасибо. Все получилось. |
|