Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.08.05;
Скачать: [xml.tar.bz2];

Вниз

Доступ к одному и тому же блоку памяти из 16- и 32-разр. прилож.   Найти похожие ветки 

 
mxsbnet   (2002-05-24 14:51) [0]

Кто-нить подскажите как получить доступ, расшарить кусок память между 16-ти разрядным (Delphi 1) и 32-х разрядным (Delphi 3) приложением? Если даже хэндлы памяти (например возращаемые GlobalAlloc) соответственно 16- и 32-битные. Если же использовать 32-разр. подсистему Delphi 1, то там удается получить максимум селектор сегмента, в то время как в Delphi 3 используются линейные адреса.


 
MBo   (2002-05-24 15:27) [1]

а как там в D1 с memory-mapped файлами обстоит?


 
mxsbnet   (2002-05-24 16:17) [2]

а можно подробнее?


 
Alx2   (2002-05-24 16:38) [3]

Help Windows SDK: см. Memory mapped files


 
Alx2   (2002-05-24 16:39) [4]

CreateFileMapping, MapViewOfFile etc..


 
MBo   (2002-05-24 16:40) [5]

см. в SDK Help
CreateFileMapping
MapViewOfFile


 
troits   (2002-05-24 16:45) [6]

IMHO...
Никаких Мemory Mapped файлов в Win16 API !!!
"Расшарить" память, безусловно, никак нельзя.
Единственное, что можно - читать/писать в один файл, ну и WM_COPYDATA, конечно.


 
ION T   (2002-05-24 19:11) [7]

А что стало с санкингом?


 
Alx2   (2002-05-27 08:07) [8]

>и WM_COPYDATA
Которое испольует MMF :)


 
Fellomena   (2002-05-27 11:56) [9]

ION T © (24.05.02 19:11)
>> А что стало с санкингом?


Действительно, единственный реальный выход - это санкинг, НО!
Он не такой реальный как кажется.
Корректная реализация санкинга очень непростая задача даже для опытного программиста.
Одним словом, в результате долгих и упорных телодвижений, я пришла к выводу, что гораздо реальнее переписать (если есть такая возможность) 16-битный код в 32-битный.


 
mxsbnet   (2002-05-28 13:44) [10]

возможности переписать нет
MMF тоже в win16 нет
собссно как и сообщения WM_COPYDATA
сумел получить линейный адрес (собссно указатель для win32-памяти)
но 32-разрядный процесс не хочеть его читать в NT-ях (видимо из-за защиты памяти) хотя в win9x все ништяк
можно ли ченить сделать чтобы всетки прочитать этот указатель (и записать есесенно) ?


 
MBo   (2002-05-28 13:53) [11]

>собссно как и сообщения WM_COPYDATA
из Рихтера

Сообщение WM_COPYDATA позволяет 16-разрядным приложениям взаимо действовать с 32-разрядными (и наоборот), как впрочем и 32-разрядным — с 64-разрядными (и наоборот).



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.08.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
3-13538
Prog_mail
2002-07-14 18:57
2002.08.05
Как с помощью SQL сделать выборку данных из Query?


1-13655
Sub
2002-07-23 11:58
2002.08.05
Общие вопросы


7-13835
Chief
2002-05-22 09:24
2002.08.05
Набор телефонного номера


14-13793
Феликс
2002-07-10 20:24
2002.08.05
Слушайте! Правда, что ли, что сборная Россия проиграла Японцам?


3-13568
aleksmax
2002-07-15 15:45
2002.08.05
Запрос на объединение значений полей





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский