Главная страница
    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.007 c
1-13686
Nostradamus
2002-07-23 21:25
2002.08.05
Проблема с DLL опять


6-13742
demsar
2002-05-23 09:02
2002.08.05
Выкачивание картинок


3-13576
VAleksey
2002-07-16 14:06
2002.08.05
База данных из dll


1-13602
newUser
2002-07-24 17:17
2002.08.05
WinXP


4-13850
Максимка
2002-05-28 20:41
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский