2017-02-13 3 views
-2

Ich habe const void *pString das ist ein Zeiger auf die Zeichenfolge zu analysieren. Nehmen wir an, dass es einen Wert ABCD enthält, ich möchte die Zeichenfolge ABCD daraus erhalten, kann jemand helfen? Wenn ich versuche, char *ptr = (char *) pString; zu verwenden, dann verwenden ptr[0] es gibt A ptr[1] es ptr[2] leer gibt es B ptr[3] gibt es gibt leer und so weiter.const void * pString zu string

+4

Sieht aus wie ' pString' ist ein [wide string] (https://en.wikipedia.org/wiki/Wide_character)? – w1ck3dg0ph3r

+1

Bitte geben Sie Ihre Hardware-Plattform, Compiler Toolchain und Betriebssystem an. –

+0

pString wird von dieser API empfangen https://msdn.microsoft.com/en-us/library/windows/desktop/dd368566(v=vs.85).aspx. Wie msdn Dokument sagt es nur seinen Zeiger auf eine Zeichenfolge, die Unicode oder Zeichensatz von ANSI sein kann. –

Antwort

0

Verwenden WCHAR Zeichenfolge für ScriptStringAnalyse(),

dann

... 
wstring ws(...); 
string str(ws.begin(), ws.end()); 
... 
str[0] 
0

WCHAR half hier und ich war in der Lage, die Ausgabe mit dem folgenden Code-Schnipsel zu erhalten:

const WCHAR *ptr = (const WCHAR *)pString; 
char *pmbbuf = (char*) malloc(len + 1); 

if (pmbbuf != NULL) { 
    wcstombs(pmbbuf, (LPCWSTR) ptr, len); 
    string str = string(pmbbuf); 
} 
Verwandte Themen