FillConsoleOutputCharacter stürtzt ab :(



  • Hi

    wenn ich "FillConsoleOutputCharacter" aufrufe, stürtzt mein Programm ab. Was hab ich falsch gemacht??

    HANDLE hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
        TCHAR cCharacter = 49; // == '1'
        DWORD nLength = 4;
        COORD dwWriteCoord;
         dwWriteCoord.X=10;
         dwWriteCoord.Y=10;
        LPDWORD lpNumberOfCharsWritten; 
    
     FillConsoleOutputCharacter(hConsoleOutput, cCharacter, nLength, dwWriteCoord, lpNumberOfCharsWritten);
    


  • mmm. Nachdem ich den getch(); ersatz geschrieben habe, stürtzt das Programm erst nach dem system("pause"); ab. (Es wird aber was ausgegeben)

    int  iInput = 0;
      char cInput = 0;
    
        static HANDLE hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
        static HANDLE hConsoleInput  = GetStdHandle(STD_INPUT_HANDLE);
    
        //getch() 
        //-----Begin 
          DWORD dwMode = 0;
          GetConsoleMode(hConsoleInput,&dwMode);
          SetConsoleMode(hConsoleInput,0);
            DWORD dwRead = 0;
            ReadConsole(hConsoleInput,&cInput,1,&dwRead,0);
          SetConsoleMode(hConsoleInput,dwMode);
        //-----End    
    
        TCHAR cCharacter = '1';
        DWORD nLength = 1;
        COORD dwWriteCoord;
         dwWriteCoord.X=10;
         dwWriteCoord.Y=10;
        LPDWORD lpNumberOfCharsWritten; 
    
     FillConsoleOutputCharacter(hConsoleOutput, cCharacter, nLength, dwWriteCoord, lpNumberOfCharsWritten);
    
     system("pause");
     return iInput;
    


  • Die MSDN Library sagt:

    pNumberOfCharsWritten:
    Pointer to a variable that receives the number of characters actually written to the console screen buffer.

    Bei dir ist das einfach nur ein uninitialiserter Zeiger.



  • MFK schrieb:

    Bei dir ist das einfach nur ein uninitialiserter Zeiger.

    ja, diese blöden mickrichweich-typen. leicht zu übersehen sowas.
    so sollte es gahen:

    ...
    DWORD NumberOfCharsWritten; 
     FillConsoleOutputCharacter(hConsoleOutput, cCharacter, nLength, dwWriteCoord, &NumberOfCharsWritten);
    


  • danke, funzt


Anmelden zum Antworten