const char[3] in LPWSTR konvertieren



  • Ich habe das Problem, dass ich einen Wert in LPWSTR
    konvertieren muss. Leider komme ich nicht wirklich
    dahinter wie das geht.



  • char a[3];
    wchar_t b[3];
    b[0] = a[0];
    b[1] = a[1];
    b[2] = a[2];
    LPWSTR p = b;



  • Genauer gesagt geht es um diesen Codeteil:

    SHARE_INFO_2 buffer; 
        buffer.shi2_netname = "test"; //muss LPWSTR sein
        buffer.shi2_type = STYPE_DISKTREE; 
        buffer.shi2_path = "C:\\"; //muss LPWSTR sein
        buffer.shi2_permissions = ACCESS_ALL; 
        buffer.shi2_remark = "hello"; //muss LPWSTR sein
        buffer.shi2_current_uses = 12; 
        buffer.shi2_max_uses = 20; 
        buffer.shi2_passwd = "geheim"; //muss LPWSTR sein
    

    Ich muss allerdings netname,remark,passwd und path mit Variablen
    belegen, die ich in Form eines CString erhalte. Trotz deinem
    Konvertierungshinweis kapiere ich es nicht. Was mache ich falsch ?
    Bzw. wie geht es richtig ?



  • Deriges schrieb:

    buffer.shi2_netname = "test"; //muss LPWSTR sein
    
    buffer.shi2_netname = L"test";
    

    Man beachte das L.



  • Hallo Bug,
    danke so funktioniert es einwandfrei. Wo liegt da der Unterschied
    zwischen TEXT und L"" ? Gibt es eine Möglichkeit den Wert
    über einen CString variabel zu halten ?



  • Hab noch keinen Plan wie ich den Inhalt von

    CString value1="c:\\dir2";
    

    in LPWSTR überführe um diesen dann als Variable
    in

    buffer.shi2_path
    

    zu nutzen. Hat jemand von
    euch eine Idee 😕



  • Deriges schrieb:

    Wo liegt da der Unterschied
    zwischen TEXT und L"" ?

    L"" liefert immer einen wide-character String. TEXT nur bei Unicode Kompilierung, ansonsten erhälst du einen char String.

    Deriges schrieb:

    Gibt es eine Möglichkeit den Wert
    über einen CString variabel zu halten ?

    Ein CString besteht aus TCHARs. Ein TCHAR ist bei Unicode Kompilierung als wchar_t definiert, ansonsten als char.



  • Danke, Problem gelöst !


Log in to reply