Главная страница
    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.005 c
1-13677
иван
2002-07-23 19:09
2002.08.05
Атрибуты файла


14-13819
DenKop
2002-07-10 02:01
2002.08.05
Вопрос любителям PIC и I2S


3-13562
Radimir
2002-07-16 09:19
2002.08.05
не работает Insert


6-13741
Dup
2002-05-08 08:50
2002.08.05
Indy Pop3


7-13829
ilysha
2002-05-22 09:09
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский