2017-02-13 14 views
-2

私はconst void *pStringを解析する文字列へのポインタです。それは値ABCDを保持すると仮定し、私はそれから文字列ABCDを取得したい、誰かが助けることができますか? は、私がchar *ptr = (char *) pString;を使用しようとすると、その後 ptr[0]を使用することが ptr[1]それはそれはそれは空になりますので、上のB ptr[3]を与える ptr[2]空提供します提供します。const void * pString to string

+4

は 'のように見えますpString'は[ワイド文字列](https://en.wikipedia.org/wiki/Wide_character)ですか? – w1ck3dg0ph3r

+1

ハードウェアプラットフォーム、コンパイラツールチェーン、およびオペレーティングシステムを指定してください。 –

+0

pStringはこのAPIから受信します。https://msdn.microsoft.com/en-us/library/windows/desktop/dd368566(v=vs.85).aspx msdn文書では、文字列へのポインタはANSIからUnicodeまたは文字セットになることができます。 –

答えて

0

使用ScriptStringAnalyseためWCHAR文字列()、

その後、

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

WCHARはここに手伝って、私は以下のスニペットを使用して出力を得ることができた:

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

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