функция DI_Init_Mouse

Discussion in 'WASM.BEGINNERS' started by Llirik, May 8, 2010.

  1. Llirik

    Llirik Member

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

    KeSqueer Сергей

    Blog Posts:
    0
    Joined:
    Jul 19, 2007
    Messages:
    1,183
    Location:
    Москва
    Code (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

    Blog Posts:
    0
    Joined:
    Mar 24, 2006
    Messages:
    499
    Читайте внимательнее:
    Стыдно такое на форуме спрашивать...
     
  4. Llirik

    Llirik Member

    Blog Posts:
    0
    Joined:
    Jul 18, 2008
    Messages:
    471
    Будьте добры, расшифруйте свой ответ, пожалуйста, на чистом ассемблере. Языка С я не знаю.
     
  5. n0name

    n0name New Member

    Blog Posts:
    0
    Joined:
    Jun 5, 2004
    Messages:
    4,336
    Location:
    Russia
    скачай сорцы, там всё есть.
     
  6. Llirik

    Llirik Member

    Blog Posts:
    0
    Joined:
    Jul 18, 2008
    Messages:
    471
    Так я уже скачал, но линкер компилировать отказывается

    Code (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