Multistring ausgeben von einen Byte Array



  • **Hallo,

    ich hoffe mir kann jemand helfen. Folgende Problemstellung:

    Ich möchte diese Funktion einer DLL nutzen (kopiert aus MSDN):**

    ULONG FbwfGetVolumeList(
       ULONG currentSession,      //[in] Boolean value
       PVOID volumeList,          //[out] Caller allocated buffer receiving the 
                                  //volume list as a multi-string. 
       PULONG size                //[in, out] Size of the buffer pointed to by 
                                  //volumeList. If this buffer size is too small, 
                                  //the function will fail and size will contain  
                                  //the required buffer size.
    );
    

    und zwar möchte ich den Multistring(was ein Dateipfad sein sollte) in der Mitte ausgegeben haben. Dies versuche ich folgendermassen:

    ULONG CurrSession = 0;
    ULONG cbSize = 100;
    BYTE *ExcludedFiles = new BYTE[100];
    
    ULONG iErr = FbwfGetVolumeList(CurrSession, ExcludedFiles, &cbSize);
    
    Folder->Items->Add("123" + *ExcludedFiles + "456");
    

    **Allerdings bekomme ich nur eine Zahl wie z.B. 0 oder 92 ausgeben.

    Hoffe mir hilft jemand.

    MFG Mazzo**



  • Ein Multistring ist nach meinem Verständnis einfach eine Aneinaderreihung von C-Strings hintereinander im Speicher. Wenn du deinen char*-Wert dereferenzierst, bekommst du das erste Zeichen dieses Strings (und da wundert es mich, daß der Ausdruck "123"+*ExcludedFiles+"456" überhaupt durch den Compiler kommt.


Anmelden zum Antworten