Problem mit masm32 WriteConsole



  • Hallo warum geht hier mein Consolen Fenster immer sofort wieder zu ?

    .486                                    
        .model flat, stdcall                    
        option casemap :none 
    
    include \masm32\include\windows.inc 
    include \masm32\include\kernel32.inc 
    includelib \masm32\lib\kernel32.lib 
    include \masm32\include\user32.inc 
    includelib \masm32\lib\user32.lib 
    
    .data
    
      outhandle  DD ?
      var    DB "ok"
    
    .code
    start:
    
    		invoke AllocConsole
    		invoke  GetStdHandle,STD_OUTPUT_HANDLE
    
             mov [outhandle],eax
    
            invoke  WriteConsole , [outhandle] , var , 2 , 0 ,0
    		invoke Sleep , 4000 
    
            invoke  ExitProcess,0
    
    end start
    

    Hier nochmal das ganze in C

    #include <windows.h>
    
    WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    {
    
    HANDLE hw;
    
    AllocConsole();
    
    char *buf="ok";
    
    hw = GetStdHandle  ( STD_OUTPUT_HANDLE );
    WriteConsole ( hw , buf , 2 , 0 , 0 );
    
    Sleep(4000);
    
    return 0;
    }
    


  • du übergibst einen ungültigen Zeiger:
    ->

    invoke  WriteConsole, [outhandle] , OFFSET var , 2 , 0 ,0
    

Anmelden zum Antworten