... Parameter und Stack-"Aufräumen" verhindern



  • Hallo,

    gibt eines eine Möglichkeit in VC++ zu verhindern, dass bei einem Aufruf einer Funktion mit einer variablen Anzahl von Parametern, danach der Stack wieder verändern wird?

    __declspec( naked ) int __stdcall FunctionA( int Anzahl, ... )
    {
    	...
    }
    
    FuntionA( 2, 0x1, 0x2 );
    

    Dieser Code führt in VC++ dazu, dass das __stdcall automatisch in ein __cdecl umgewandelt wird. Dadurch wird nach dem Aufruf von FuntionA noch ein

    add esp, 0xC
    

    ausgeführt.
    Da aber meine Funktion so geschrieben ist, dass sie selbst den Stack "aufräumt" (__stdcall) wird esp verändert.

    Gibt es eine Möglichkeit, dass VC++ nicht mehr ein

    add esp
    

    ausführt nach dem Aufruf?

    Danke mal im vorraus für euere Hilfe


Anmelden zum Antworten