[C/C++] Problem mit LPSTR und int

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Pac_-_man, 26. Februar 2007 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 26. Februar 2007
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    Problem mit LPSTR und int

    Hi!

    Ich hatte vor Kurzem erst diesen Beitrag gepostet: [C/C++] problem beim umwandeln von int nach char - RR:Board

    Ich dachte mein Problem wäre gelöst gewesen, aber das ist es leider doch nicht. Das Problem ist, das ich die Windows-Datentypen verwenden muss. Also ich poste nochmal den Code:

    Code:
     for(int i=0; i<10; i++)
     {
     LPSTR bla = {"/Pictures/Asteroid/ASTEROID0.PNG"};
    
     bla[27] = static_cast<LPSTR>(i);
     }
    
    i soll die Zahlen von 0-9 in dem String darstellen und wichtig ist, dass der Datentyp am Ende auch LPSTR ist!

    Also, weiß da vlt nochmal jemand weiter?
     
  2. 26. Februar 2007
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    AW: Problem mit LPSTR und int

    Wieso LPSTR und nicht PSTR?
    Die Zeiten von 16-Bit ist doch vorbei..

    Ansonsten ist das verfahren gleich, es ist halt n char-Pointer.
     
  3. 26. Februar 2007
    AW: Problem mit LPSTR und int

    ähm, korrigiert mich wenn ich falsch liege, aber LP steht für LongPointer und ist somit doch 32-Bit und P dann wahrscheinlich 16Bit oder? Und mit PSTR klappts genauso wenig, das ist ja das Problem...

    Der Compiler spuckt folgenden Fehler aus:
    Code:
    Cannot cast from 'int' to 'char'
     
  4. 26. Februar 2007
    AW: Problem mit LPSTR und int

    Nun guck dir nochmal genau deinen Quellcode an

    Ja es steht fuer Long.
    LPSTR ist ein Pointer. Damals zu den 16-Bit Zeiten hatten die Zeiger unterschiedliche
    Groessen.
    Heutzutage ist alles auf 32-Bit getrimmt, und somit ist LPSTR ueberfluessig.
     
  5. 26. Februar 2007
    AW: Problem mit LPSTR und int

    Hab ich schon^^ Und wenn ich weiter wüsste, würde ich nicht posten...
     
  6. 26. Februar 2007
    AW: Problem mit LPSTR und int

    Die Loesung steht doch eh schon im anderen Thread, wo liegt das Problem?
     
  7. 26. Februar 2007
    AW: Problem mit LPSTR und int

    nein tut sie nicht, sonst würde ich ja nicht neu posten! Bei den anderen Posts wurden immer nur char-arrays benutzt, ich brauche aber einen String vom Windows-Datentyp LPSTR, da ich das ganze einer DirectX-Funktion übergeben möchte und die nimmt leider keine Daten vom Typ string...
    Ich hab das auch erst heute gemerkt, dass mein Programm immer nu deshalb abgeschmiert ist, weil an der stelle ne ungültige Adresse übergeben wurde...
     
  8. 26. Februar 2007
    AW: Problem mit LPSTR und int

    Das ist ein gewoehnlicher char-Pointer, hab ich doch oben geschrieben..
     
  9. 26. Februar 2007
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    AW: Problem mit LPSTR und int

    Der Typ "char[]" beinhaltet die Textdaten;
    ist also ein Zeiger auf die Textdaten,
    wobei der Typ "LPSTR" den Pointer der auf die Textdaten zeigt beinhaltet;
    ist also ein Zeiger auf den Zeiger der Textdaten.
    (Hört sich etwas komplizierter an als es ist)

    Somit kannst du das benutzen was in dem vorherigem Thread (/posts/2341846/)
    gesagt wurde, musst nur dann einfach den Pointer der "char[]" Variable nehmen um den Datentyp "LPSTR" zu erhalten.

    Ein Beispiel:

    Code:
     [B]char [/B]ch[5] = [COLOR="Red"]"hallo"[/COLOR];
     LPSTR str = (LPSTR)(&ch);
    
    Dabei wird kein zusätzlicher Speicher gebraucht (...) es wird einfach der Typ "LPSTR" mit dem "char[]" Typ verknüpft,
    dh. wenn du den Wert im "char[]" Typ änderst dann wird er auch automatisch beim "LPSTR" Typ geändert.

    Mfg

    Rushh0ur
     
  10. 26. Februar 2007
    AW: Problem mit LPSTR und int

    Zeichen.

    Nein, er ist kein Doppelpointer.


    Aendern tut der Pointer garnichts,
    Er ist ein Zeiger.
    Er zeigt also die ganze Zeit auf die Adresse vom char-Array und wenn sich was aendert dann gibt er nur das aus worauf er zeigt.
     
  11. 27. Februar 2007
    AW: Problem mit LPSTR und int

    @remal

    Ah ja du Klug r, also ist es kein Doppelpointer, was ist es dann ein einfacher
    Pointer oder was? Wie es scheint Spamst du hier nur rum:
    mehrere Beiträge und keine Antwort auf die gestellte Frage.

    Ich habe das ganze Programmiert, Kompiliert, Disassembliert und festgestellt,
    dass es ein Doppelpointer ist. Aber das kann nach deiner Aussage nicht stimmen,
    bitte sage dann mir und Pac-Man die richtige Lösung.

    Mfg

    Rushh0ur
     
  12. 27. Februar 2007
    AW: Problem mit LPSTR und int

    ok, also ich habs jetzt endlich. @remal: Deine Antoworten waren wirklich nicht sehr hilfreich, aber das problem lag noch an einer ganz anderen stelle. Nach mehrerem Rumprobieren und viel Frust käuft der Kram nun endlich. Werde jetzt closen, trotzdem danke für die Hilfe!

    MFG
    Pacman
     
  13. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.