Создаю атом, push _address_of_data; call GlobalAddAtom; но как я в другой программе узнаю Атом или адрес строки(по которой его можно найти)?
да, но для GlobalFindAtom - необходимо знать адрес переменной, а для GlobalGetAtomName знать Атом. В пределах одной программы можно, а как другая программа знать будет?
прога1: Код (Text): ATOM atom; atom = GlobalAddAtom("MyAtom"); прога2: Код (Text): ATOM atom; atom = GlobalFindAtom("MyAtom"); if (atom) { GlobalDeleteAtom(atom); }
Я понял, я на ASM работаю(Delphi). Исправь плиз, если че не так. push _address_of_data; call GlobalAddAtom("MyAtom"); ???
хм, ну давай еще евентами... Атомом можно передать (если без извращений) только был ли установлен атом с стаким именем раньше или нет. Для передачи больших объемов лучше импользовать другие виды IPC: named pipe WM_COPYDATA mailslot mapping files и т.д.
Как мне обьяснили, то лучший обмен по оперативной памяти это через атомы, но как именно устроить обмен между двумя программами? Подскажите самый простой и быстрый способ
Что то не очень понятно что Вы понимаете под "обменом в оперативной памяти" Как лучше и проще сильно зависит от контекста:объем передаваеммых данных, имеет ли коммутируемы приложения окна и т.д. и т.п. Для начала можно почитать http://www.wasm.ru/article.php?article=1021004