String in hex umwandeln?



  • Moin!
    Mein Problem sieht wie folgt aus:
    ich habe ein prog zu Com-Kommunikation und will damit daten mit einem Chipkartenleser austauschen. Ich muß die Daten als hex-bytes schicken. Wie kann ich z.B. "60 05 22 05 3F E0 10 8D" diese 8 Hex-bytes senden. Bis jetzt kann mein prog nur strings senden:

    void CTest::OnTest() 
    {
    
        DCB PortConfig; 
        hCom = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); 
        if(GetCommState(hCom,&PortConfig) == 0) 
        { 
            //hier fehlerbehandlung
    		MessageBox("1.Senden nicht möglich!");
            return; 
        } 
        PortConfig.BaudRate = CBR_9600; 
        PortConfig.StopBits = ONESTOPBIT; 
        PortConfig.Parity = NOPARITY; 
        PortConfig.ByteSize = 8; 
        if(SetCommState(hCom,&PortConfig) == 0) 
        { 
            //hier error;
    		MessageBox("2.Senden nicht möglich!");
        } 
    
        //SENDEN 
        unsigned long length = 0; 
        CString sDaten = "60 05 22 05 3F E0 10 8D"; 
    	if(WriteFile(hCom, sDaten, sDaten.GetLength(), &length,NULL) == 0) 
        { 
            //hier fehlerbehandlung
    		MessageBox("3.Senden nicht möglich!");
            return; 
        }
    	CloseHandle(hCom);
    }
    

    😉



  • tach auch,
    mittels strtol(..) müsstest du arbeitem können ..





  • Bullach schrieb:

    Moin!
    Mein Problem sieht wie folgt aus:
    ich habe ein prog zu Com-Kommunikation und will damit daten mit einem Chipkartenleser austauschen. Ich muß die Daten als hex-bytes schicken. Wie kann ich z.B. "60 05 22 05 3F E0 10 8D" diese 8 Hex-bytes senden. Bis jetzt kann mein prog nur strings senden:

    [cpp]
    void CTest::OnTest()
    {

    DCB PortConfig;
    hCom = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
    if(GetCommState(hCom,&PortConfig) == 0)
    {
    //hier fehlerbehandlung
    MessageBox("1.Senden nicht möglich!");
    return;
    }
    PortConfig.BaudRate = CBR_9600;
    PortConfig.StopBits = ONESTOPBIT;
    PortConfig.Parity = NOPARITY;
    PortConfig.ByteSize = 8;
    if(SetCommState(hCom,&PortConfig) == 0)
    {
    //hier error;
    MessageBox("2.Senden nicht möglich!");
    }

    //SENDEN
    unsigned long length = 0;
    CString sDaten = "600522053FE0108D";
    if(WriteFile(hCom, sDaten, sDaten.GetLength(), &length,NULL) == 0)
    {
    //hier fehlerbehandlung
    MessageBox("3.Senden nicht möglich!");
    return;
    }
    CString sDaten = 0x03
    if(WriteFile(hCom, sDaten, sDaten.GetLength(), &length,NULL) == 0)
    {
    //hier fehlerbehandlung
    MessageBox("3.Senden nicht möglich!");
    return;
    }

    CloseHandle(hCom);
    }[/cpp]
    😉

    Hat jetzt fnktioniert!! 😃
    End of Text hat gefehlt. Die hex-bytes kann man wie oben schicken. COOL


Anmelden zum Antworten