Russian Qt Forum
Ноябрь 01, 2024, 05:21
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Компиляторы и платформы
>
Компиляторы
>
MinGW. Какие сделать чтение/запись по адресу памяти
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: MinGW. Какие сделать чтение/запись по адресу памяти (Прочитано 20299 раз)
Mikhail
Программист
Offline
Сообщений: 587
MinGW. Какие сделать чтение/запись по адресу памяти
«
:
Декабрь 14, 2006, 19:10 »
В MSVC есть _outp( int, int ) и _inp( int ) для работы с памятью. Может применяться для взаимодействия с портом LPT.
Не нашел аналогов в MinGW-шном g++.
Подскажите пожалуйста наименование данных функций в MinGW-шном g++ их инслуды и необходимые библиотеки.
Записан
Mikhail
Программист
Offline
Сообщений: 587
MinGW. Какие сделать чтение/запись по адресу памяти
«
Ответ #1 :
Декабрь 21, 2006, 19:25 »
Неужели никто не знает?
Записан
sandy
Гость
MinGW. Какие сделать чтение/запись по адресу памяти
«
Ответ #2 :
Декабрь 22, 2006, 16:20 »
Цитата: "Mikhail"
Неужели никто не знает?
Ты ж хакер, тебе виднее
Записан
Mikhail
Программист
Offline
Сообщений: 587
MinGW. Какие сделать чтение/запись по адресу памяти
«
Ответ #3 :
Декабрь 22, 2006, 21:17 »
Не смешно. Обидно получать детские ответы. Спрашиваю, потому что не знаю.
А ответ толковый получить хотелось бы.
Записан
yurror
Гость
MinGW. Какие сделать чтение/запись по адресу памяти
«
Ответ #4 :
Март 02, 2007, 04:14 »
Mikhail, оно реально надо? объясни тупому человеку на кой?
запись по любому адресу в любой доступный участок памяти делается так
char *mem = 0xХРЕН_ЗНАЕТ_КАКОЙ_АДРЕС;
*mem = КАКОЕ_ХОЧЕШЬ_ЗНАЧЕНИЕ;
Другое дело что меня терзают смутные сомнения что _outp( int, int ) и _inp( int ) для работы с памятью
хыхы... ибо они имеют довольно определенное имя иэто имя говорит что они вообще-то для ввода/вывода через порты (ну что процессор портами считает)
так вот не уверен что это присутствует в MinGW.
Это эм... платформозависимые функции и они описаны в соответствующих заголовочниках.
#include <sys/io.h>
Mikhail, удачного хака LPT портов. почитайте лучше документацию на свой микропроцессор. много нового и интересного узнаете. а самое главное подобные вопросы сами отпадут.
Записан
Mikhail
Программист
Offline
Сообщений: 587
MinGW. Какие сделать чтение/запись по адресу памяти
«
Ответ #5 :
Март 03, 2007, 19:36 »
Ну естественно хочется работать с LPT под MinGW так же просто как из под visual C (Windows) или g++(Linux). Не верится в отсутствие под MinGW подобных функций.
В #include <sys/io.h> искал.
Записан
Admin
Administrator
Джедай : наставник для всех
Offline
Сообщений: 1988
MinGW. Какие сделать чтение/запись по адресу памяти
«
Ответ #6 :
Март 04, 2007, 03:16 »
не забываем что mingw это gcc
а gcc делался для unix, где работа с устройством - это чтение запись в файл
так что ее там не не будет
Записан
Вудруф
Гость
MinGW. Какие сделать чтение/запись по адресу памяти
«
Ответ #7 :
Март 04, 2007, 08:29 »
Не забываем, что gcc - это GNU Compiler Collection, а чтение/запись в файл - это функции библиотеки.
Записан
Mikhail
Программист
Offline
Сообщений: 587
MinGW. Какие сделать чтение/запись по адресу памяти
«
Ответ #8 :
Март 05, 2007, 08:38 »
Admin
Цитировать
не забываем что mingw это gcc
а gcc делался для unix, где работа с устройством - это чтение запись в файл
так что ее там не не будет
Я понимаю, что это работа с файлом, но ведь для того чтобы написать специальный файл для устройства LPT тоже необходимо иметь возможность писать/читать порты.
Ну так кто же ответит?
Записан
f_evgeny
Гость
MinGW. Какие сделать чтение/запись по адресу памяти
«
Ответ #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
Сообщений: 587
MinGW. Какие сделать чтение/запись по адресу памяти
«
Ответ #10 :
Март 07, 2007, 08:14 »
Цитировать
Для того, чтобы работать с портами (устройством) под WinNT нужно писать драйвер. В MinGW Вы это не найдете.
Есть уже написанные драйвера, которые позволяют писать в произвольные порты. Специально для таких хаков, когда нужно работать с устройством, а драйвер писать неохота. Я когда-то использовал для этих целей DLPortio:
http://www.driverlinx.com/DownLoad/DlPortIO.htm
Согласен. DLPortio позволяет обращение к порту - это верно. Однако обращение производится функцией типа _outp( int, int ) и _inp( int ). Вот аналоги этих функций для MinGW мне и необходимы.
Записан
f_evgeny
Гость
MinGW. Какие сделать чтение/запись по адресу памяти
«
Ответ #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
Сообщений: 587
MinGW. Какие сделать чтение/запись по адресу памяти
«
Ответ #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
Гость
MinGW. Какие сделать чтение/запись по адресу памяти
«
Ответ #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
Сообщений: 587
MinGW. Какие сделать чтение/запись по адресу памяти
«
Ответ #14 :
Март 09, 2007, 09:04 »
Для f_evgeny
Цитировать
Это для 9x? Думаю (уверен), это не будет работать на NT. То, что Вы привели, это и есть API операционной системы, только линии 9x. Думаю, что в инклюдах MinGW заложено API линии NT, а там таких команд быть не должно.
Да, это все откомпилированное VC6-8, работает и в 9х и в NT и XP . Проверено неоднократно.
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...