Господа, а можно ли как-то в Visual C++ работать с far указателями (когда в указателе присутствует селектор)? Судя по MSDN far указатели как-бы не поддерживаются, Но неужели это невозможно в языке Как-то не верится.
17.03.05 18:31: Перенесено модератором из 'Средства разработки' — Павел Кузнецов
Здравствуйте, AlexS1, Вы писали:
AS>Господа, а можно ли как-то в Visual C++ работать с far указателями (когда в указателе присутствует селектор)? Судя по MSDN far указатели как-бы не поддерживаются, Но неужели это невозможно в языке Как-то не верится.
Здравствуйте, AlexS1, Вы писали:
AS>Господа, а можно ли как-то в Visual C++ работать с far указателями (когда в указателе присутствует селектор)? Судя по MSDN far указатели как-бы не поддерживаются, Но неужели это невозможно в языке Как-то не верится.
А зачем?
Использование far указателей необходимо при написании приложений под DOS
(т.е. когда проц работает в режиме виртуального 8086)
Под виндой используется плоская модель памяти, поэтому far указатели не нужны.
Использование селекторов происходит на уровне проца при преобразовании адресов.
Завидую людям, которые могут себе позволить никуда не спешить.
Здравствуйте, _Dinosaur, Вы писали:
D>Здравствуйте, AlexS1, Вы писали:
AS>>Господа, а можно ли как-то в Visual C++ работать с far указателями (когда в указателе присутствует селектор)? Судя по MSDN far указатели как-бы не поддерживаются, Но неужели это невозможно в языке Как-то не верится.
D>А зачем? D>Использование far указателей необходимо при написании приложений под DOS D>(т.е. когда проц работает в режиме виртуального 8086) D>Под виндой используется плоская модель памяти, поэтому far указатели не нужны. D>Использование селекторов происходит на уровне проца при преобразовании адресов.
Для обычного Windows приложения это не нужно. В моем случае все по другому. Путем модификации GDT/LDT я предоставляю контекст одного приложения другому для полного доступа. То другое приложение должно работать как со своим контекстом, так и с другим. Для этого не и нужны far указатели (для доступа через др. селектор).
Здравствуйте, AlexS1, Вы писали:
AS>Для обычного Windows приложения это не нужно. В моем случае все по другому. Путем модификации GDT/LDT я предоставляю контекст одного приложения другому для полного доступа. То другое приложение должно работать как со своим контекстом, так и с другим. Для этого не и нужны far указатели (для доступа через др. селектор).
Ты хочешь использовать данные одного процесса из другого?
Завидую людям, которые могут себе позволить никуда не спешить.
Здравствуйте, _Dinosaur, Вы писали:
D>Здравствуйте, AlexS1, Вы писали:
AS>>Для обычного Windows приложения это не нужно. В моем случае все по другому. Путем модификации GDT/LDT я предоставляю контекст одного приложения другому для полного доступа. То другое приложение должно работать как со своим контекстом, так и с другим. Для этого не и нужны far указатели (для доступа через др. селектор).
D>Ты хочешь использовать данные одного процесса из другого?
В общем да. Только путь предлагаемый Win32 (Toolhelp32ReadProcessMemory, ReadProcessMemory, WriteProcessMemory) мне не подходит. Мне нужем ПРЯМОЙ доступ для чтения и записи, и чтобы с этим удобно было работать в Visual.
Возможно в дальнейшем потребуется вызывать методы отдного приложения из другого через т.н. CallGate.
Здравствуйте, AlexS1, Вы писали:
AS>Господа, а можно ли как-то в Visual C++ работать с far указателями (когда в указателе присутствует селектор)? Судя по MSDN far указатели как-бы не поддерживаются, Но неужели это невозможно в языке Как-то не верится.
Да вроде отсутствуют как класс. Ассемблерные вставки делать приходится.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Здравствуйте, AlexS1, Вы писали:
AS>Господа, а можно ли как-то в Visual C++ работать с far указателями (когда в указателе присутствует селектор)? Судя по MSDN far указатели как-бы не поддерживаются, Но неужели это невозможно в языке Как-то не верится.
far указатели — это расширение языка. В VC1.5 (под Win16) они ещё были актуальны, а в Win32 user mode, с которым работает VC6..VC7 — нет.
Вот их и "закомментировали".