Russian Qt Forum
Ноябрь 01, 2024, 05:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: MinGW. Какие сделать чтение/запись по адресу памяти  (Прочитано 20300 раз)
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« : Декабрь 14, 2006, 19:10 »

В MSVC есть _outp( int, int ) и _inp( int ) для работы с памятью. Может применяться для взаимодействия с портом LPT.
Не нашел аналогов в MinGW-шном g++.
Подскажите пожалуйста наименование данных функций в MinGW-шном g++ их инслуды и необходимые библиотеки.
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #1 : Декабрь 21, 2006, 19:25 »

Неужели никто не знает?
Записан
sandy
Гость
« Ответ #2 : Декабрь 22, 2006, 16:20 »

Цитата: "Mikhail"
Неужели никто не знает?


Ты ж хакер, тебе виднее
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #3 : Декабрь 22, 2006, 21:17 »

Не смешно. Обидно получать детские ответы. Спрашиваю, потому что не знаю.
А ответ толковый получить хотелось бы.
Записан
yurror
Гость
« Ответ #4 : Март 02, 2007, 04:14 »

Mikhail, оно реально надо? объясни тупому человеку на кой?
запись по любому адресу в любой доступный участок памяти делается так
char *mem = 0xХРЕН_ЗНАЕТ_КАКОЙ_АДРЕС;
*mem = КАКОЕ_ХОЧЕШЬ_ЗНАЧЕНИЕ;

Другое дело что меня терзают смутные сомнения что _outp( int, int ) и _inp( int ) для работы с памятью Улыбающийся хыхы... ибо они имеют довольно определенное имя иэто имя  говорит что они вообще-то для ввода/вывода через порты (ну что процессор портами считает)

так вот не уверен что это присутствует в MinGW.
Это эм... платформозависимые функции и они описаны в соответствующих заголовочниках.
#include <sys/io.h>

Mikhail, удачного хака LPT портов. почитайте лучше документацию на свой микропроцессор. много нового и интересного узнаете. а самое главное подобные вопросы сами отпадут.
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #5 : Март 03, 2007, 19:36 »

Ну естественно хочется работать с LPT под MinGW так же просто как из под visual C (Windows) или g++(Linux). Не верится в отсутствие под MinGW подобных функций.
В #include <sys/io.h> искал.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #6 : Март 04, 2007, 03:16 »

не забываем что mingw это gcc
а gcc делался для unix, где работа с устройством - это чтение запись в файл
так что ее там не не будет
Записан
Вудруф
Гость
« Ответ #7 : Март 04, 2007, 08:29 »

Не забываем, что gcc - это GNU Compiler Collection, а чтение/запись в файл - это функции библиотеки.
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #8 : Март 05, 2007, 08:38 »

Admin
Цитировать

не забываем что mingw это gcc
а gcc делался для unix, где работа с устройством - это чтение запись в файл
так что ее там не не будет


Я понимаю, что это работа с файлом, но ведь для того чтобы написать специальный файл для устройства LPT тоже необходимо иметь возможность писать/читать порты.

Ну так кто же ответит?
Записан
f_evgeny
Гость
« Ответ #9 : Март 05, 2007, 11:28 »

Цитата: "Mikhail"
Admin
Цитировать

не забываем что mingw это gcc
а gcc делался для unix, где работа с устройством - это чтение запись в файл
так что ее там не не будет


Я понимаю, что это работа с файлом, но ведь для того чтобы написать специальный файл для устройства LPT тоже необходимо иметь возможность писать/читать порты.

Ну так кто же ответит?

Для того, чтобы работать с портами (устройством) под WinNT нужно писать драйвер. В MinGW Вы это не найдете.
Есть уже написанные драйвера, которые позволяют писать в произвольные порты. Специально для таких хаков, когда нужно работать с устройством, а драйвер писать неохота. Я когда-то использовал для этих целей DLPortio: http://www.driverlinx.com/DownLoad/DlPortIO.htm

Гугл еще выкидывает http://sourceforge.net/projects/portio Но это я уже не пробовал.
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #10 : Март 07, 2007, 08:14 »

Цитировать

Для того, чтобы работать с портами (устройством) под WinNT нужно писать драйвер. В MinGW Вы это не найдете.
Есть уже написанные драйвера, которые позволяют писать в произвольные порты. Специально для таких хаков, когда нужно работать с устройством, а драйвер писать неохота. Я когда-то использовал для этих целей DLPortio: http://www.driverlinx.com/DownLoad/DlPortIO.htm



Согласен. DLPortio позволяет обращение к порту - это верно. Однако обращение производится функцией типа _outp( int, int ) и _inp( int ). Вот аналоги этих функций для MinGW мне и необходимы.
Записан
f_evgeny
Гость
« Ответ #11 : Март 07, 2007, 11:04 »

Цитата: "Mikhail"
Цитировать

Для того, чтобы работать с портами (устройством) под WinNT нужно писать драйвер. В MinGW Вы это не найдете.
Есть уже написанные драйвера, которые позволяют писать в произвольные порты. Специально для таких хаков, когда нужно работать с устройством, а драйвер писать неохота. Я когда-то использовал для этих целей DLPortio: http://www.driverlinx.com/DownLoad/DlPortIO.htm



Согласен. DLPortio позволяет обращение к порту - это верно. Однако обращение производится функцией типа _outp( int, int ) и _inp( int ). Вот аналоги этих функций для MinGW мне и необходимы.

Для того, чтобы такие функции были в инклудах MinGW, они как минимум должны быть в API операционной системы. А их там не может быть, по крайней мере для линии NT. Поэтому и в MinGW их быть не может.
Вот когда Вы устанавливаете DLPortio, появляются эти функции, дя чего, собственно DLPortio и служит.
А чем не устраивает DLPortio?
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #12 : Март 08, 2007, 17:24 »

Цитировать

Для того, чтобы такие функции были в инклудах MinGW, они как минимум должны быть в API операционной системы. А их там не может быть, по крайней мере для линии NT. Поэтому и в MinGW их быть не может.
Вот когда Вы устанавливаете DLPortio, появляются эти функции, дя чего, собственно DLPortio и служит.
А чем не устраивает DLPortio?


Не будем путать драйвер DLPortio, открывающий доступ к портам по чтению/записи, с функциями компилятора (например, gcc или VC), используемыми для конкретного чтения/записи в порты.
Для MS VC6 объявления функций :
int __cdecl _outp(unsigned short, int);
int __cdecl _inp(unsigned short);
находятся в файле .../VC98/include/conio.h,
а отнюдь не в API операционной системы.

Вот аналоги _outp и _inp для gcc мне и нужны.
Кто подскажет?
Записан
f_evgeny
Гость
« Ответ #13 : Март 08, 2007, 18:10 »

Цитата: "Mikhail"
Цитировать

Для того, чтобы такие функции были в инклудах MinGW, они как минимум должны быть в API операционной системы. А их там не может быть, по крайней мере для линии NT. Поэтому и в MinGW их быть не может.
Вот когда Вы устанавливаете DLPortio, появляются эти функции, дя чего, собственно DLPortio и служит.
А чем не устраивает DLPortio?


Не будем путать драйвер DLPortio, открывающий доступ к портам по чтению/записи, с функциями компилятора (например, gcc или VC), используемыми для конкретного чтения/записи в порты.
Для MS VC6 объявления функций :
int __cdecl _outp(unsigned short, int);
int __cdecl _inp(unsigned short);
находятся в файле .../VC98/include/conio.h,
а отнюдь не в API операционной системы.

Вот аналоги _outp и _inp для gcc мне и нужны.
Кто подскажет?

Это для 9x? Думаю (уверен), это не будет работать на NT. То, что Вы привели, это и есть API операционной системы, только линии 9x. Думаю, что в инклюдах MinGW заложено API линии NT, а там таких команд быть не должно.
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #14 : Март 09, 2007, 09:04 »

Для f_evgeny

Цитировать

Это для 9x? Думаю (уверен), это не будет работать на NT. То, что Вы привели, это и есть API операционной системы, только линии 9x. Думаю, что в инклюдах MinGW заложено API линии NT, а там таких команд быть не должно.



Да, это все откомпилированное VC6-8, работает и в 9х и в NT и XP . Проверено неоднократно.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 22.