Nein, hab ich wieder geändert.

Hier mal der komplette Code:

Code:
// SerielleSchnittstelle.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//

#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "windows.h"
#include "strsafe.h"


void ErrorExit(LPTSTR lpszFunction);

int i = 1234567;
HANDLE hSerial;
COMMTIMEOUTS timeouts;
DCB dcbSerialParams;
char szBuff;        
char szBuff1[8];
char szBuff2[8];
char szBuff3[8];
DWORD dwBytesRead;
DWORD dwBytesWrite;
int n = 8; //4096;

int _tmain(int argc, _TCHAR* argv[])
{
    hSerial = CreateFile("COM4",
        GENERIC_READ | GENERIC_WRITE,
        0,
        0,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL,
        0);
    if(hSerial==INVALID_HANDLE_VALUE)
    {
        if(GetLastError()==ERROR_FILE_NOT_FOUND)
        {
            // Generate an error
            // Fehlercode ausgeben
            if(!GetProcessId(NULL))
            {
                ErrorExit(TEXT("GetProcessId"));
            }
            //serial port does not exist. Inform user.
            printf("Fehler bei CreateFile. Serial Port existiert nicht!\n");
        }
        //some other error occurred. Inform user.
        printf("Fehler bei CreateFile. Sonstiger Fehler!\n");
    }
    else
    {
        printf("Kein Fehler bei CreateFile!\n");
    }
    //////////////////////////////
    if (!GetCommState(hSerial, &dcbSerialParams)) 
    {
        //error getting state
        printf("Fehler bei GetCommState!\n");
    }
    else
    {
        printf("Kein Fehler bei GetCommState!\n");
    }
    /*dcbSerialParams.BaudRate=CBR_19200; //CBR_57600;
    dcbSerialParams.ByteSize=8;
    dcbSerialParams.StopBits=ONESTOPBIT;
    dcbSerialParams.Parity=NOPARITY;
    dcbSerialParams.fOutX=1;
    dcbSerialParams.fInX=1;*/
   dcbSerialParams.BaudRate=CBR_19200;//a; /* oder was Anders */
   dcbSerialParams.DCBlength=sizeof(DCB); /* !!! */
   dcbSerialParams.fBinary=1;
   dcbSerialParams.fOutxCtsFlow=0;
   dcbSerialParams.fOutxDsrFlow=0;
   dcbSerialParams.fDtrControl=DTR_CONTROL_ENABLE;
   dcbSerialParams.fDsrSensitivity=0;
   dcbSerialParams.fRtsControl=RTS_CONTROL_ENABLE;

    if(!SetCommState(hSerial, &dcbSerialParams))
    {
        //error setting serial port state
        printf("Fehler bei GetCommState beim Parameter belegen!\n");
    }
    else
    {
        printf("Kein Fehler bei GetCommState beim Parameter belegen!\n");
    }
    ///////////////////////////////
    timeouts.ReadIntervalTimeout=50;
    timeouts.ReadTotalTimeoutConstant=50;
    timeouts.ReadTotalTimeoutMultiplier=10;
    timeouts.WriteTotalTimeoutConstant=50;
    timeouts.WriteTotalTimeoutMultiplier=10;

    if(!SetCommTimeouts(hSerial, &timeouts))
    {
        //error occureed. Inform user
        printf("Fehler bei Timeout!\n");
    }
    else
    {
        printf("Kein Fehler bei Timeout!\n");
    }
    //////////////////////////////////
    while(i < 9999999)
    {   
        i = 0;
        if(!ReadFile(hSerial, &szBuff2, n, &dwBytesRead, NULL))

        {
            //error occurred. Report to user.
            printf("Fehler bei ReadFile!\n");
        }
        else
        {  i = atoi(szBuff2);
        _itoa_s(i,szBuff3,10);
        printf (szBuff3);
        printf ("\n");
        }
        ////////////////////////////////
        //szBuff[0] = 'r';
        i = 1234569;
        _itoa_s(i,szBuff1,10);    
        if(!WriteFile(hSerial, &szBuff1, n, &dwBytesWrite, NULL))
        {
            //error occurred. Report to user.
            printf("Fehler bei WriteFile!\n"); 
        }
        else
        {
            printf (szBuff1);
            printf ("\n");
        }

    }
    ///////////////////////////////
    CloseHandle(hSerial);
    ////////////////////////////////
    system("pause");
    return 0;
}

// Fehlerfunktion
void ErrorExit(LPTSTR lpszFunction) 
{ 
    // Retrieve the system error message for the last-error code

    LPVOID lpMsgBuf;
    LPVOID lpDisplayBuf;
    DWORD dw = GetLastError(); 

    FormatMessage(
        FORMAT_MESSAGE_ALLOCATE_BUFFER | 
        FORMAT_MESSAGE_FROM_SYSTEM |
        FORMAT_MESSAGE_IGNORE_INSERTS,
        NULL,
        dw,
        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
        (LPTSTR) &lpMsgBuf,
        0, NULL );

    // Display the error message and exit the process

    lpDisplayBuf = (LPVOID)LocalAlloc(LMEM_ZEROINIT, 
        (lstrlen((LPCTSTR)lpMsgBuf) + lstrlen((LPCTSTR)lpszFunction) + 40) * sizeof(TCHAR)); 
    StringCchPrintf((LPTSTR)lpDisplayBuf, 
        LocalSize(lpDisplayBuf) / sizeof(TCHAR),
        TEXT("%s failed with error %d: %s"), 
        lpszFunction, dw, lpMsgBuf); 
    MessageBox(NULL, (LPCTSTR)lpDisplayBuf, TEXT("Error"), MB_OK); 

    LocalFree(lpMsgBuf);
    LocalFree(lpDisplayBuf);
    ExitProcess(dw); 
}