Помогите разобраться с атомами

Тема в разделе "WASM.BEGINNERS", создана пользователем vodvorezlaya, 18 авг 2006.

  1. vodvorezlaya

    vodvorezlaya New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2006
    Сообщения:
    14
    Создаю атом,

    push _address_of_data;
    call GlobalAddAtom;

    но как я в другой программе узнаю Атом или адрес строки(по которой его можно найти)?
     
  2. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    RTFMSDN - GlobalFindAtom, GlobalGetAtomName
     
  3. vodvorezlaya

    vodvorezlaya New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2006
    Сообщения:
    14
    да, но для GlobalFindAtom - необходимо знать адрес переменной, а для GlobalGetAtomName знать Атом. В пределах одной программы можно, а как другая программа знать будет?
     
  4. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    прога1:
    Код (Text):
    1. ATOM atom;
    2. atom = GlobalAddAtom("MyAtom");
    прога2:
    Код (Text):
    1. ATOM atom;
    2. atom = GlobalFindAtom("MyAtom");
    3. if (atom) {
    4.   GlobalDeleteAtom(atom);
    5. }
     
  5. vodvorezlaya

    vodvorezlaya New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2006
    Сообщения:
    14
    Я понял, я на ASM работаю(Delphi).
    Исправь плиз, если че не так.

    push _address_of_data;
    call GlobalAddAtom("MyAtom");

    ???
     
  6. vodvorezlaya

    vodvorezlaya New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2006
    Сообщения:
    14
    Это я понял, а как устроить обмен, куда вводить данные для обмена?
     
  7. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Для обмена данными между двумя программами лучше использовать WM_COPYDATA.
     
  8. PE_Kill

    PE_Kill New Member

    Публикаций:
    0
    Регистрация:
    16 янв 2006
    Сообщения:
    107
    Неа, лучше атомы
     
  9. Kmet

    Kmet New Member

    Публикаций:
    0
    Регистрация:
    24 июн 2006
    Сообщения:
    28
    Адрес:
    Belarus
    хм, ну давай еще евентами...

    Атомом можно передать (если без извращений) только был ли установлен атом с стаким именем раньше или нет. Для передачи больших объемов лучше импользовать другие виды IPC:
    named pipe
    WM_COPYDATA
    mailslot
    mapping files
    и т.д.
     
  10. vodvorezlaya

    vodvorezlaya New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2006
    Сообщения:
    14
    Как мне обьяснили, то лучший обмен по оперативной памяти это через атомы,

    но как именно устроить обмен между двумя программами?

    Подскажите самый простой и быстрый способ
     
  11. Kmet

    Kmet New Member

    Публикаций:
    0
    Регистрация:
    24 июн 2006
    Сообщения:
    28
    Адрес:
    Belarus
    Что то не очень понятно что Вы понимаете под "обменом в оперативной памяти"

    Как лучше и проще сильно зависит от контекста:объем передаваеммых данных, имеет ли коммутируемы приложения окна и т.д. и т.п.

    Для начала можно почитать http://www.wasm.ru/article.php?article=1021004
     
  12. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Ну-ну.
     
  13. vodvorezlaya

    vodvorezlaya New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2006
    Сообщения:
    14
    Да я это как раз то и прочитал...