1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

createFile

    • Frage
  • IT-Max
  • 5. Januar 2008 um 19:53
  • Unerledigt
  • IT-Max
    4
    IT-Max
    Mitglied
    Punkte
    155
    Beiträge
    19
    • 5. Januar 2008 um 19:53
    • #1

    ich möchte in c++ über createFile ein com Port ansprechen. das ganze funktioniert perfekt mit folgendem code:

    TCHAR *pcCommPort = TEXT("COM6");
    mhRS = CreateFile( pcCommPort,
    GENERIC_READ | GENERIC_WRITE,
    0, // must be opened with exclusive-access
    NULL, // default security attributes
    OPEN_EXISTING, // must use OPEN_EXISTING
    FILE_ATTRIBUTE_NORMAL,
    NULL // hTemplate must be NULL for comm devices
    );

    jetzt will ich aber das COM6 nicht hartcodiert haben. dazu hab ich das ganze in eine methode gepackt und als parameter kommt als short 6 herein. ich schaffe es nicht COM6 daraus zu machen. weiß jemand wie das geht?

    :thumb: Ich bin positiv eingestellt, sogar meine Blutgruppe ist positiv!

  • Stefan Kögl
    10
    Stefan Kögl
    Mitglied
    Reaktionen
    10
    Punkte
    1.010
    Beiträge
    199
    • 5. Januar 2008 um 21:54
    • #2

    Versteh ich das richtig, dass du einfach eine Ganzzahl an einen String anhängen willst? Falls ja, was macht dann der ganze andere Code hier?

    -- Stefan

  • Schakal
    9
    Schakal
    Mitglied
    Reaktionen
    5
    Punkte
    780
    Beiträge
    152
    • 6. Januar 2008 um 11:56
    • #3

    unsigned short blah....

    //Falls nur <10 comports behandelt werden sollen kann man sich das ganz
    //Eigentlich sparen und mit der string Klasse gehts noch gemütlicher

    char *numStr[6];
    itoa(blah,numStr,10);
    size_t len = strlen(numStr);
    char comport[len+4];
    comport[len+3]=0;
    strncpy(comport,"COM",3);
    strncpy((char *)(comport+3),numStr,len);

    sollte funktionieren, wenn sowieso nur kleiner als 10 ist
    char* comPort = "COM0";
    comPort[3]=48+blah;

    wenn man nicht die Standard-Funktionen benutzen möchte
    müsste man händisch umwandeln (Tipp: Modulo 10)

    mfg Schakal

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung