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

Discussion in 'WASM.WIN32' started by 6opoDuJIo, Jul 13, 2009.

  1. 6opoDuJIo

    6opoDuJIo New Member

    Blog Posts:
    0
    Joined:
    May 22, 2009
    Messages:
    105
    столкнулся с такой проблемой - передаю внешней функции(т.е. вызываю функцию из dll) указатель на структуру, но когда пытаюсь извлечь из памяти какой-то элемент,получаю неверное значение:
    Code (Text):
    1. mov eax,Parameter
    2. mov CommandReceived,eax
    3. mov eax,Parameter+12
    4. mov hhSocket,dword ptr eax
    структура, на которую передаю указатель :
    Code (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

    Blog Posts:
    0
    Joined:
    Oct 5, 2003
    Messages:
    1,706
    6opoDuJIo
    Синтаксис masm
    Code (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

    Blog Posts:
    0
    Joined:
    May 22, 2009
    Messages:
    105
    ты наверно меня не так понял
    переменная со структурой CommandConnectionstruc находится в вызывающем модуле, а код
    Code (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

    Blog Posts:
    0
    Joined:
    May 22, 2009
    Messages:
    105
    а не, всё правильно, БОЛЬШОЕ спасибо, сам даже вроде-как понял что к чему)