функция DI_Init_Mouse

Тема в разделе "WASM.BEGINNERS", создана пользователем Llirik, 8 май 2010.

  1. Llirik

    Llirik Member

    Публикаций:
    0
    Регистрация:
    18 июл 2008
    Сообщения:
    471
    В туториале http://www.wasm.ru/article.php?article=pg03 пишется о некой функции DI_Init_Mouse. Мне бы хотелось узнать, в какой dll она находится и есть ли она вообще?
     
  2. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    Код (Text):
    1. int DI_Init_Mouse(void)
    2. {
    3. // this function intializes the mouse
    4.  
    5. // create a mouse device
    6. if (lpdi->CreateDevice(GUID_SysMouse, &lpdimouse, NULL)!=DI_OK)
    7.    return(0);
    8.  
    9. // set cooperation level
    10. if (lpdimouse->SetCooperativeLevel(main_window_handle,
    11.                        DISCL_NONEXCLUSIVE | DISCL_BACKGROUND)!=DI_OK)
    12.    return(0);
    13.  
    14. // set data format
    15. if (lpdimouse->SetDataFormat(&c_dfDIMouse)!=DI_OK)
    16.    return(0);
    17.  
    18. // acquire the mouse
    19. if (lpdimouse->Acquire()!=DI_OK)
    20.    return(0);
    21.  
    22. // return success
    23. return(1);
    24.  
    25. } // end DI_Init_Mouse
     
  3. G13

    G13 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2006
    Сообщения:
    499
    Читайте внимательнее:
    Стыдно такое на форуме спрашивать...
     
  4. Llirik

    Llirik Member

    Публикаций:
    0
    Регистрация:
    18 июл 2008
    Сообщения:
    471
    Будьте добры, расшифруйте свой ответ, пожалуйста, на чистом ассемблере. Языка С я не знаю.
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    скачай сорцы, там всё есть.
     
  6. Llirik

    Llirik Member

    Публикаций:
    0
    Регистрация:
    18 июл 2008
    Сообщения:
    471
    Так я уже скачал, но линкер компилировать отказывается

    Код (Text):
    1. .386p
    2. option casemap:none
    3. .model flat, stdcall
    4. includelib C:\masm32\lib\kernel32.lib
    5. includelib  C:\masm32\lib\user32.lib
    6. includelib  C:\masm32\lib\gdi32.lib
    7. includelib  C:\masm32\lib\dinput.lib
    8. include c:\masm32\include\windows.inc
    9. include c:\masm32\include\user32.inc
    10. include c:\masm32\include\kernel32.inc
    11. include c:\masm32\include\gdi32.inc
    12. include C:\masm32\include\dinput.inc
    13. include C:\masm32\include\Protos.inc
    14.  
    15. .code      
    16. main:
    17. push 0
    18. push offset lpdi
    19. push DIRECTINPUT_VERSION
    20. push 0
    21. call DirectInputCreate
    22.     call DI_Init_Mouse
    23.  
    24.     .IF EAX == FALSE
    25.         JMP  errmouss
    26.     .ENDIF
    27.  
    28.  done:
    29.     ;===================
    30.     ; Выполнено успешно
    31.     ;===================
    32.  
    33.             push    0
    34.             push    offset  titleprog
    35.             push  offset  msbtxt1
    36.             push    0  
    37.             call MessageBoxA
    38.             push     0
    39.                         call    ExitProcess
    40.  
    41.  errmouss:
    42.     ;===================
    43.     ; Вывести сообщение об ошибке
    44.     ;===================
    45.  
    46.             push    0
    47.             push    offset  titleprog
    48.             push  offset  msgmouseerr
    49.             push    0  
    50.             call MessageBoxA
    51.             push     0
    52.                         call    ExitProcess
    53.  
    54.  
    55. ; DI_Init   ENDP
    56. .data
    57. lpdi dd 0
    58. titleprog     db       "CrackMe 1 Кирилла",0
    59. msbtxt1      db       "Выполнено успешно",0
    60. msgmouseerr  db   "Ошибка при иницилизации мыши",0
    61.  
    62. end main