dll - передача параметров

Тема в разделе "WASM.WIN32", создана пользователем 6opoDuJIo, 13 июл 2009.

  1. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    столкнулся с такой проблемой - передаю внешней функции(т.е. вызываю функцию из dll) указатель на структуру, но когда пытаюсь извлечь из памяти какой-то элемент,получаю неверное значение:
    Код (Text):
    1. mov eax,Parameter
    2. mov CommandReceived,eax
    3. mov eax,Parameter+12
    4. mov hhSocket,dword ptr eax
    структура, на которую передаю указатель :
    Код (Text):
    1. CommandConnectionstruc struc
    2. CommandReceived              dd ?
    3. ReciveCommandBufferOffset     dd ?
    4. BytesCommandRecived           dd 0
    5. hSocket            dd ?
    6. CommandConnectionstruc ends
     
  2. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    6opoDuJIo
    Синтаксис masm
    Код (Text):
    1. mov eax,Parameter
    2. push    (CommandConnectionstruc ptr [eax]).CommandReceived
    3. pop CommandReceived
    4. push    (CommandConnectionstruc ptr [eax]).hSocket
    5. pop hhSocket
     
  3. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    ты наверно меня не так понял
    переменная со структурой CommandConnectionstruc находится в вызывающем модуле, а код
    Код (Text):
    1. mov eax,Parameter
    2. mov CommandReceived,eax
    3. mov eax,Parameter+12
    4. mov hhSocket,dword ptr eax
    в вызываемом
     
  4. 6opoDuJIo

    6opoDuJIo New Member

    Публикаций:
    0
    Регистрация:
    22 май 2009
    Сообщения:
    105
    а не, всё правильно, БОЛЬШОЕ спасибо, сам даже вроде-как понял что к чему)