Konvertierung von 'unsigned short *' nach 'wchar_t *' nicht möglich



  • Hi,

    habe mir die Funktion CreateShortcut aus http://www.c-plusplus.net/forum/topic,39361.html, das bringt mir nach ein paar nachbesserungen aber jetzt diesen Fehler: Konvertierung von 'unsigned short *' nach 'wchar_t *' nicht möglich
    Da kommen dann noch ein paar andere, die aber vermutlich vom dem ersten stammen...

    Es geht um diesen Code

    MultiByteToWideChar( CP_ACP, 0, pszLocation, -1, wsz, MAX_PATH);
            hr = pPersistFile->Save( wsz, TRUE );
            hr = pPersistFile->SaveCompleted( wsz );
    

    Und Jetzt das ganze mal auseinander genommen mit Fehler:

    Code:

    MultiByteToWideChar( CP_ACP, 0, pszLocation, -1, wsz, MAX_PATH);
    

    Fehler:

    E2034 Konvertierung von 'unsigned short *' nach 'wchar_t *' nicht möglich
    E2342 Keine Übereinstimmung des Typs beim Parameter 'lpWideCharStr' ('wchar_t *' erwartet, 'unsigned short *' erhalten)
    

    Code:

    hr = pPersistFile->Save( wsz, TRUE );
    

    Fehler:

    E2034 Konvertierung von 'unsigned short *' nach 'const wchar_t *' nicht möglich
    E2342 Keine Übereinstimmung des Typs beim Parameter 'pszFileName' ('const wchar_t *' erwartet, 'unsigned short *' erhalten)
    

    Code:

    hr = pPersistFile->SaveCompleted( wsz );
    

    Fehler:

    E2034 Konvertierung von 'unsigned short *' nach 'const wchar_t *' nicht möglich
    E2342 Keine Übereinstimmung des Typs beim Parameter 'pszFileName' ('const wchar_t *' erwartet, 'unsigned short *' erhalten)
    

    Wie bekomme ich das jetzt zum laufen?
    Hab weder was im Forum, noch im I-Net noch in der Hilfe gefunden, was mir geholfen hat.
    Bisher zumindest 😉

    MfG ViperT

    PS: wsz ist als WORD deklariert. 😕
    PS2: Ich dachte eigentlich nicht das das hier ins WinAPI Forum kommt, weil es ja nicht um die Api, sondern um ein C++ Fehler geht... Aber wenn ihr meint, dass es da hin gehört: Bitte verschieben!



  • kusch, ab ins Win32 API Forum



  • Wenn WORD nicht als unsigned short definiert ist, ist das schuld an dem Fehler

    Versuch vllt. mal ein
    hr = pPersistFile->Save( reinterpret_cast< wchar_t *>(wsz), TRUE );



  • SirLant schrieb:

    Wenn WORD nicht als unsigned short definiert ist, ist das schuld an dem Fehler

    Wie soll ich WORD denn als unsigned short deklarieren???

    SirLant schrieb:

    Versuch vllt. mal ein
    hr = pPersistFile->Save( reinterpret_cast< wchar_t *>(wsz), TRUE );

    Das mit dem reinterpret_cast funzt soweit, doch was mache ich mit:

    MultiByteToWideChar( CP_ACP, 0, pszLocation, -1, wsz, MAX_PATH);
    

    Weis grad irgentwie nichtmal wie der Befehl arbeitet?!
    Inner Borland Hilfe steht der irgentwie net drin...



  • Hallo,

    Die Funktion ist ja auch von Microsoft. Schau doch mal hier http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/unicode_17si.asp

    Ciao



  • Habs jetzt so gemacht:

    MultiByteToWideChar( CP_ACP, 0, pszLocation, -1, reinterpret_cast< wchar_t *>(wsz), MAX_PATH);
            //hr = pPersistFile->Save( wsz, TRUE );
            //hr = pPersistFile->SaveCompleted( wsz );
            hr = pPersistFile->Save( reinterpret_cast< wchar_t *>(wsz), TRUE );
            hr = pPersistFile->SaveCompleted( reinterpret_cast< wchar_t *>(wsz) );
    

    bigthx an SirLant 🙂

    funzt jetzt wunderbar.

    Nur kann mir noch einer sagen, wie ich %userprofile% auflösen kann?
    Da gabs doch mal was mit SpecialFolder oder so ähnlich....

    MfG ViperT



  • siehe SHGetSpecialFolderLocation
    Bitte frag doch sowas im WinAPI Forum.



  • Is gut sorry...

    Werd nächstemal direkt da fragen wo ich her hab.

    trotzdem thx, hatte es schon gefunden gehapt.

    MfG ViperT


Anmelden zum Antworten