Seltsamer Fehler bei Funktionsaufteilung



  • hallo,
    ich habe diese Funktion:

    __declspec(naked) BOOL WINAPI __stdcall ggSendMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
    {
       __asm
       {
          mov  edi, edi
          push ebp
          mov  ebp, esp
          jmp [SendMessageA5]
       }
    }
    

    Wenn ich es aber so schreibe, gibt mein Compiler seltsame Fehler aus:

    __declspec(naked) BOOL WINAPI __stdcall ggSendMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
    
    // unten
    __declspec(naked) BOOL WINAPI __stdcall ggSendMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
    {
       __asm
       {
          mov  edi, edi
          push ebp
          mov  ebp, esp
          jmp [SendMessageA5]
       }
    }
    


  • msdn:

    ... Thus, the naked attribute is not considered part of the function's type, and function pointers cannot have the naked attribute. Furthermore, the naked attribute cannot be applied to a data definition ...

    BOOL WINAPI __stdcall ggSendMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
    
    ...
    
    __declspec(naked) BOOL WINAPI __stdcall ggSendMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
    {
       __asm
       {
          pop edi
          call DWORD ptr SendMessageA
          push edi
          ret
       }
    }
    


  • Danke, hat geklappt danke!


Anmelden zum Antworten