Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

RusFAQ.ru: Программирование на C / C++

Выпуск № 555
от 28.07.2004, 16:20

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 1781
Отправлено ответов: 3486
Активность: 195.7 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

makaveli_lcf
Статус: Начальный
Общий рейтинг: 127.77
[Подробней >>]
bocha
Статус: Опытный
Общий рейтинг: 132.9
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1773. bocha: Если быть абсолютно точным, то меня в первую очередь интересует адреса 0000:0408h и 0000:0409... (ответов: 2)
Вопрос № 1774. Приветствую Вас! Меня интересует такой вопрос: всеп кодят на MFC в Visual C; а существуют ли другие... (ответов: 1)

Вопросов: 2, ответов: 3


 Вопрос № 1773

bocha: Если быть абсолютно точным, то меня в первую очередь интересует адреса 0000:0408h и 0000:0409h (это адресное пространство BIOS, насколько я понял). Как я понимаю, на С это будет выглядеть так: 0х00000408 и 0х00000409 (если я ошибаюсь, прошу пояснить мне и этот момент).
У меня установлена Win XP, а также Turbo Pascal 7.1 и MS Visual C++ 6.0 (в последнем я пока использовал Win32 Console Application). Итак, если на я на своем TP 7.1 использую одну из следующих строк:
lpt1:=memw [$40:$08];
lpt1:=memw [$0000:$0408];
то в lpt1 получу базовый адрес LPT1 (как в первом, так и во втором случае).
Ах да, также еще есть Turbo Pascal for Windows, в нем аналогично все работает.
В MS Visual C++ 6.0 я использовал следующую строку:
int *pLptAddress = reinterpret_cast (0x00000408);
далее, моя ХР позволяла сделать это:
cout <но не позволяла этого:
cout <<*pLptAddress; (я получал «обнаружена ошибка. Приложение будет закрыто»
Конечная цель - программа с использованием MFC для Win 2000, для разработки будет использоваться вышеупомянутый MS Visual C++ 6.0.
Вроде бы на все контрвопросы ответил.



Вопрос отправлен: 25.07.2004, 15:50
Отправитель: Михаил

[Следующий вопрос >>] [Список вопросов]

Отвечает makaveli_lcf

Доброе время суток, Михаил!
"В MS Visual C++ 6.0 я использовал следующую строку:
int *pLptAddress = reinterpret_cast (0x00000408);
далее, моя ХР позволяла сделать это:
cout <
но не позволяла этого:
cout <<*pLptAddress; "
что же XP позволяет??
возможно происходит некорретное обращение к памяти когда вы разименовываете *pLptAddress

Ответ отправлен: 25.07.2004, 16:43
Отправитель: makaveli_lcf


Отвечает bocha

Доброе время суток, Михаил!
В VC6 к этим адресам ты не сможешь обратится, почему, я уже отвечал, в паскале, только если пишешь для 16-разрядного режима, для пользовательских приложений эти адреса в винде закрыты, если не веришь мне, почитай MSDN :
0K - ~64K (0xFFFF) Not writable. This boundary is approximate due to the way the system loads some features of Microsoft® MS-DOS®. This memory is private to the process.
~64K (0x10000) -
4 MB (0x3FFFFF) Reserved for MS-DOS compatibility. This memory is fully readable and writable by the process. However, this range of memory may have some MS-DOS–related structures or code in it, so processes should not arbitrarily read from or write to it. This memory is private to the process.
4MB (0x400000) -
2GB (0x7FFFFFFF) Available for code and user data. User data is readable and writable by the process. Code is execute-only. This memory is private to the process.
2GB (0x80000000) -
3GB (0xBFFFFFFF) Shared area, readable and writable by all processes. A number of system DLLs and other data are loaded into this space.
3GB (0xC0000000) -
4GB (0xFFFFFFFF) System memory, readable or writable by any process. However, this is where low-level system code resides, so writing to this region may corrupt the system, with potentially catastrophic consequences.
ЗЫ: используй CreateFile, DeviceIoControl

Ответ отправлен: 25.07.2004, 21:40
Отправитель: bocha


 Вопрос № 1774

Приветствую Вас!
Меня интересует такой вопрос: всеп кодят на MFC в Visual C; а существуют ли другие IDE для написания и компиляции MFC-кода. Какие? С уважением, Ole!



Вопрос отправлен: 25.07.2004, 16:11
Отправитель: Ole

[Следующий вопрос >>] [Список вопросов]

Отвечает makaveli_lcf

Добрый день, Ole!
Возможно в Borland C++ Builder есть поддержка MFC

Ответ отправлен: 25.07.2004, 16:45
Отправитель: makaveli_lcf



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (23)
C / C++ (11)
Perl (5)
Builder / Delphi (15)
Pascal (22)
Basic / VBA (7)
Java / JavaScript (5)
PHP (15)
Криптография (8)
WinAPI (9)
Радиоэлектроника (8)
Пользователю
Windows 95/98/Me (44)
Windows NT/2000/XP (58)
"Железо" (42)
Поиск информации (14)
Администратору
Windows NT/2000/XP (35)
Linux / Unix (18)
Юристу
Гражданское право (11)
Семейное право (8)
Трудовое право (9)
КоАП (7)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
Rambler's TopShop Rambler's Top100
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
http://subscribe.ru/feedback/
Адрес подписки
Отписаться

В избранное