Название: MinGW. Какие сделать чтение/запись по адресу памяти Отправлено: Mikhail от Декабрь 14, 2006, 19:10 В MSVC есть _outp( int, int ) и _inp( int ) для работы с памятью. Может применяться для взаимодействия с портом LPT.
Не нашел аналогов в MinGW-шном g++. Подскажите пожалуйста наименование данных функций в MinGW-шном g++ их инслуды и необходимые библиотеки. Название: MinGW. Какие сделать чтение/запись по адресу памяти Отправлено: Mikhail от Декабрь 21, 2006, 19:25 Неужели никто не знает?
Название: MinGW. Какие сделать чтение/запись по адресу памяти Отправлено: sandy от Декабрь 22, 2006, 16:20 Цитата: "Mikhail" Неужели никто не знает? Ты ж хакер, тебе виднее Название: MinGW. Какие сделать чтение/запись по адресу памяти Отправлено: Mikhail от Декабрь 22, 2006, 21:17 Не смешно. Обидно получать детские ответы. Спрашиваю, потому что не знаю.
А ответ толковый получить хотелось бы. Название: MinGW. Какие сделать чтение/запись по адресу памяти Отправлено: yurror от Март 02, 2007, 04:14 Mikhail, оно реально надо? объясни тупому человеку на кой?
запись по любому адресу в любой доступный участок памяти делается так char *mem = 0xХРЕН_ЗНАЕТ_КАКОЙ_АДРЕС; *mem = КАКОЕ_ХОЧЕШЬ_ЗНАЧЕНИЕ; Другое дело что меня терзают смутные сомнения что _outp( int, int ) и _inp( int ) для работы с памятью :) хыхы... ибо они имеют довольно определенное имя иэто имя говорит что они вообще-то для ввода/вывода через порты (ну что процессор портами считает) так вот не уверен что это присутствует в MinGW. Это эм... платформозависимые функции и они описаны в соответствующих заголовочниках. #include <sys/io.h> Mikhail, удачного хака LPT портов. почитайте лучше документацию на свой микропроцессор. много нового и интересного узнаете. а самое главное подобные вопросы сами отпадут. Название: MinGW. Какие сделать чтение/запись по адресу памяти Отправлено: Mikhail от Март 03, 2007, 19:36 Ну естественно хочется работать с LPT под MinGW так же просто как из под visual C (Windows) или g++(Linux). Не верится в отсутствие под MinGW подобных функций.
В #include <sys/io.h> искал. Название: MinGW. Какие сделать чтение/запись по адресу памяти Отправлено: Admin от Март 04, 2007, 03:16 не забываем что mingw это gcc
а gcc делался для unix, где работа с устройством - это чтение запись в файл так что ее там не не будет Название: MinGW. Какие сделать чтение/запись по адресу памяти Отправлено: Вудруф от Март 04, 2007, 08:29 Не забываем, что gcc - это GNU Compiler Collection, а чтение/запись в файл - это функции библиотеки.
Название: MinGW. Какие сделать чтение/запись по адресу памяти Отправлено: Mikhail от Март 05, 2007, 08:38 Admin
Цитировать не забываем что mingw это gcc а gcc делался для unix, где работа с устройством - это чтение запись в файл так что ее там не не будет Я понимаю, что это работа с файлом, но ведь для того чтобы написать специальный файл для устройства LPT тоже необходимо иметь возможность писать/читать порты. Ну так кто же ответит? Название: MinGW. Какие сделать чтение/запись по адресу памяти Отправлено: f_evgeny от Март 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 Но это я уже не пробовал. Название: MinGW. Какие сделать чтение/запись по адресу памяти Отправлено: Mikhail от Март 07, 2007, 08:14 Цитировать Для того, чтобы работать с портами (устройством) под WinNT нужно писать драйвер. В MinGW Вы это не найдете. Есть уже написанные драйвера, которые позволяют писать в произвольные порты. Специально для таких хаков, когда нужно работать с устройством, а драйвер писать неохота. Я когда-то использовал для этих целей DLPortio: http://www.driverlinx.com/DownLoad/DlPortIO.htm Согласен. DLPortio позволяет обращение к порту - это верно. Однако обращение производится функцией типа _outp( int, int ) и _inp( int ). Вот аналоги этих функций для MinGW мне и необходимы. Название: MinGW. Какие сделать чтение/запись по адресу памяти Отправлено: f_evgeny от Март 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? Название: MinGW. Какие сделать чтение/запись по адресу памяти Отправлено: Mikhail от Март 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 мне и нужны. Кто подскажет? Название: MinGW. Какие сделать чтение/запись по адресу памяти Отправлено: f_evgeny от Март 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, а там таких команд быть не должно. Название: MinGW. Какие сделать чтение/запись по адресу памяти Отправлено: Mikhail от Март 09, 2007, 09:04 Для f_evgeny
Цитировать Это для 9x? Думаю (уверен), это не будет работать на NT. То, что Вы привели, это и есть API операционной системы, только линии 9x. Думаю, что в инклюдах MinGW заложено API линии NT, а там таких команд быть не должно. Да, это все откомпилированное VC6-8, работает и в 9х и в NT и XP . Проверено неоднократно. Название: MinGW. Какие сделать чтение/запись по адресу памяти Отправлено: f_evgeny от Март 09, 2007, 10:40 Цитата: "Mikhail" Для f_evgeny Цитировать Это для 9x? Думаю (уверен), это не будет работать на NT. То, что Вы привели, это и есть API операционной системы, только линии 9x. Думаю, что в инклюдах MinGW заложено API линии NT, а там таких команд быть не должно. Да, это все откомпилированное VC6-8, работает и в 9х и в NT и XP . Проверено неоднократно. А как же: Цитировать According to the documentation provided with Visual C++ 32-bit Edition, inp(), outp(), and the other port I/O related functions are Win32 and Win32s compatible. However, executing code that uses these functions causes a privileged instruction exception on Win32 on Windows NT. The code that uses inp(), outp(), and so forth will execute correctly on Win32s. (http://support.microsoft.com/kb/112298)Цитировать Win32s is a layer that runs on 16-bit versions of Windows to provide access to 32-bit applications. Название: MinGW. Какие сделать чтение/запись по адресу памяти Отправлено: Mikhail от Март 09, 2007, 17:32 Ну так и написано, как я говорю.
Функции inp(), outp() обеспечиваются именно компилятором Visual C++. Однако их использование в непривилегированном режиме вызовет исключение в Win32 и Windows NT. Это и понятно. Для использования привилегированного режима и применяется средства типа DLPORTIO. Однако, функции работы с портами (inp(), outp()) должны предоставляться компилятором языка. Повторяю вопрос. Какие функии работы с портами предоставляет MinGW как порт gcc для Windows? Название: MinGW. Какие сделать чтение/запись по адресу памяти Отправлено: f_evgeny от Март 09, 2007, 18:47 Цитата: "Mikhail" Однако, функции работы с портами (inp(), outp()) должны предоставляться компилятором языка. Повторяю вопрос. Какие функии работы с портами предоставляет MinGW как порт gcc для Windows? - Не компилятором, а библиотеками. Которые привязаны к конкретной архитектуре. - Насколько я себе представляю нет таких функций в MinGW. Если бы были то были бы в include/conio.h, а их там нет. Название: MinGW. Какие сделать чтение/запись по адресу памяти Отправлено: TeAnton от Май 26, 2007, 10:28 Я в этом деле чайник, но почему нельзя воспользоваться ассемблерными вставками?
|