reinterpret_cast



  • Bekomme beim Compilieren folgende Meldungen

    ...warning C4311: 'Typumwandlung': Zeigerverkürzung von 'int *__w64 ' zu 'LONG'
    
    ...warning C4312: 'Typumwandlung': Konvertierung von 'LONG' in größeren Typ 'char *'
    

    Denke mal, dass ich reinterpret_cast<LONG>variable verwenden muss, aber das geht nicht. Ich peil das nicht. 😞



  • Nett von dir, das du auch gleich den Code der die Fehler auslöst mit gepostet
    hast. 😃 😉 😃



  • naja, das ist einfach (long)variable als parameter in einer dll-funktion! mehr nicht. möchte doch nur wissen, wie ich von 'int *__w64 ' zu 'LONG' komme...



  • smartina schrieb:

    Denke mal, dass ich reinterpret_cast<LONG>variable verwenden muss

    Nicht so. Du hast hier 64 Bit Kompatibilitätswarnungen. Da du vermutlich irgendwas mit WinAPI machst, kannst du auf Ganzzahltypen zurückgreifen, welche die Grösse eines Zeigers abdecken. Verwenden kannst du diese zB wie folgt:

    int* a = bla;
    LONG_PTR b = reinterpret_cast<LONG_PTR>(a);
    


  • kannst du die code-zeile, die den fehler auslöst, trotzdem mal posten?
    arbeitest du mit einem 64-bit-betriebssystem?



  • arbeite mit 32 bit. laut microsoft ist _w64 eine einstellung, die bei 32 bit os deaktiviert ist und bei 64 bit angeknipst ist. war bei mir aber das gegenteil. hab die copmiler settings geändert und jetzt sind auch diese blöden meldungen weg.


Anmelden zum Antworten