Вверх ↑
Этот топик читают: Гость
Ответов: 9906
Рейтинг: 351
#31: 2008-07-14 21:07:53 ЛС | профиль | цитата
nesco писал(а):
Ну вот, дошли и до того, что конкретно надо

А вот я интересуюсь: почему во множественном числе

Даже не буду говорить про свои посты, вот пост коллеги tsdima: http://hiasm.com/forum.html?q=3&p=88361#p88361
Он совершенно не противоречит той раскладке свойств и методов, про которые я тебе только-что рассказал.
Как-то всем давно это было понятно, мне представляется....
А мелкие детали -- всегда будут, как и в любой работе...
карма: 9

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#32: 2008-07-14 21:23:41 ЛС | профиль | цитата
Galkov писал(а):
Как-то всем давно это было понятно, мне представляется....

А вот мне, как-то, не совсем представлялось. Ты вот думал о глобальных стримах, а я думал о быстрой передачи данных между приложениями и меня как раз устраивала клиент/серверная конструкция. И я вот только сейчас понял, как я могу обмениваться данными между приложениями без клиент/сервера после твоего примера, ну не совсем до меня это быстро дошло, ну что теперь Ну не все же я могу соображать с полуслова, иногда до меня очень тяжело доходит.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#33: 2008-07-14 21:33:41 ЛС | профиль | цитата
Вот здесь еще: http://hiasm.com/forum.html?q=3&p=88345#p88345
Galkov писал(а):
Да собственно, чего может быть фундаментальней - это физически один и тот же кусок памяти, к которому имеют доступ разные процессы
Просто НЕТ никаких вызовов API для проведения обмена....


Какими словами написать ЕЩЕ понятней - не пойму даже
И разве требовались вызовы API для обмена в примерчике, мой показанном ???

Если бы не показывал примерчик, они бы тоже не требованись.......
карма: 9

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#34: 2008-07-14 21:49:53 ЛС | профиль | цитата
Galkov писал(а):
И разве требовались вызовы API для обмена в примерчике, мой показанном ???

А разве MapViewOfFile не API вызов
------------ Дoбавленo:

Galkov писал(а):
Какими словами написать ЕЩЕ понятней - не пойму даже

Да понял я тебя, и уже написал про это, во тогда не понял, как чего сделать, а сейчас понял. Если чего будет непонятно по реализации я спрошу, а может еще и не раз достану.
Убедительная просьба, сильно не пинать ( а то, иж ты, сделал из меня мальчика для битья )
карма: 22

0
Ответов: 9906
Рейтинг: 351
#35: 2008-07-14 22:00:10 ЛС | профиль | цитата
Блин, обмен - это методы doRead и doWrite

Где там вызовы API


#pas
procedure THiAsmClass.doWrite;
var s:string; i:integer;
begin
s := ToString(_D);
i := length(s);
Move(i,Data[0],4);
Move(s[1],Data[4],i);
end;

procedure THiAsmClass.doRead;
var s:string; i:integer;
begin
Move(Data[0],i,4);
SetLength(s,i);
Move(Data[4],s[1],i);
_hi_CreateEvent(_D,@onRead,s);
end;

------------ Дoбавленo:

Если ты туда это запихал, так кто же виноват в этом...
Ты еще и перехват исключений влепил при вызове WinApi
За каким-то лядом.......

Тебе так прямо и говорят: не пудри мозги ни себе, ни людям.
Прежде всего - СЕБЕ
карма: 9

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#36: 2008-07-14 22:06:00 ЛС | профиль | цитата
Galkov писал(а):
обмен - это методы doRead и doWrite

Я с этим спорить не собираюсь, это совершенно верно. Но как из другого приложения обращается к одному и тому же куску памяти, я че-то не очень понимаю
Откуда берется Data во втором приложении, из воздуха что ли, причем, не делается OpenFileMapping
карма: 22

0
Ответов: 9906
Рейтинг: 351
#37: 2008-07-14 22:16:03 ЛС | профиль | цитата
nesco писал(а):
Откуда берется Data во втором приложении

Оттуда же, откуда и в первом приложение - из конструктора элемента InlineCode_4DB60FC

Блин, ну зачем ты меня заставляешь произносить тавтологии
Откуда же еще, если это совершенно одинаковые два приложения
И если третье запустишь - оттуда же
И четвертое - тоже оттуда же

карма: 9

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#38: 2008-07-14 22:22:42 ЛС | профиль | цитата
Хотя, кажется въехал -- CreateFileMapping при втором вызове возвращает ненулевой hMMF, те эмулирует OpenFileMapping, но возвращает ошибку ERROR_ALREADY_EXISTS, типа, такой файл уже есть. Просто, ты эту ошибку не ловишь, все оказывается гораздо проще, чем я думал

------------ Дoбавленo:


Galkov писал(а):
Откуда же еще, если это совершенно одинаковые два приложения

Извини не понял, а если это будут совершенно разные приложения, а не одинаковые, совпадут ли указатели в этом случае
карма: 22

0
Ответов: 9906
Рейтинг: 351
#39: 2008-07-14 22:27:14 ЛС | профиль | цитата
nesco писал(а):
те эмулирует OpenFileMapping

ничего он не эмулирует
А вот OPEN_EXISTING - делает, и возвращает "честный" хэндл уже существующего
Так умеют делать все объекты ядра: и мьютексы, и файлы, и майлслоты

nesco, ты читать умеешь, или как: OpenFileMapping стоит следущей командой после CreateFileMapping
Во ВСЕХ экземплярах приложения стоит, как бы это не было противно окружающим

карма: 9

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#40: 2008-07-14 22:34:12 ЛС | профиль | цитата
Galkov писал(а):
ничего он не эмулирует

Ну, ты на меня не злись сильно, я не всегда правильно выражаюсь

Galkov писал(а):
OpenFileMapping стоит следущей командой после CreateFileMapping

То что она стоит следующей, то это я читал, но до вот этого

Galkov писал(а):
Так умеют делать все объекты ядра: и мьютексы, и файлы, и майлслоты

еще не дочитал. Спасибо, что разъяснил.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#41: 2008-07-14 22:35:54 ЛС | профиль | цитата
nesco писал(а):
совпадут ли указатели в этом случае

Нет, не совпадут
И значения хэндлов не совпадут
И даже если одинаковые приложения будут, все равно не совпадут
Точнее: имеют полное право не совпасть
А если и совпадут, то это НЕ ГОВОРИТ РОВНО НИ О ЧЕМ

Но это все равно будет: физически один и тот же кусок памяти
карма: 9

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#42: 2008-07-14 22:37:07 ЛС | профиль | цитата
Теперь осталось воплотить это все в код, рыбу ты мне уже дал
карма: 22

0
Ответов: 9906
Рейтинг: 351
#43: 2008-07-14 22:43:07 ЛС | профиль | цитата
А мне показалось, что надо базу изучать - чем физический адрес отличается от логического, и что такое полная независимость логических адресных пространств для разных процессов...

Сдуреть можно, если честно.
------------ Дoбавленo:

А потом создасть свой конструктор стрима: NewSharedStream - такого Кладов тебе не написал
карма: 9

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#44: 2008-07-14 22:46:08 ЛС | профиль | цитата
Galkov писал(а):
А потом создасть свой конструктор стрима: NewSharedStream - такого Кладов тебе не написал

Мне кажется, что это задача на будущее, до лучшего понимания происходящего (твои слова, кстати)
карма: 22

0
Ответов: 9906
Рейтинг: 351
#45: 2008-07-14 22:58:52 ЛС | профиль | цитата
Это типа ты хочешь сказать, что если бы вдруг Кладов не написал NewMemoryStream, то у элемента MemoryStream мы бы делали методы doRead, doWrite и т.д..
А к элементу FileStream - подключали бы элемент DataToFile, ибо NewFileStream Кладов все-таки написал

Потому-что происходящее нам понять трудно, оказывается

Так что-ли
карма: 9

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)