1

質問が言うように、wstringをconst char *に変換するための適切なテンプレート関数は何でしょうか?私のプログラムは完全にUnicodeで書かれていますが、SQliteではほとんどの関数にconstchar*が必要です。

私はmsdnでこれを行う方法を見つけました:http://msdn.microsoft.com/en-us/library/ms235631%28v=vs.80%29.aspx、ここ名前はwstringです。

// Convert to a char*
    size_t origsize = wcslen(name.c_str()) + 1;
    const size_t newsize = 100;
    size_t convertedChars = 0;
    char nstring[newsize];
    wcstombs_s(&convertedChars, nstring, origsize, name.c_str(), _TRUNCATE);
4

1 に答える 1

2

* 16 sqlite関数(例:sqlite3_prepare16)を使用する必要があります。ここで、you4はUTF-16(つまりwstring)をパラメーターとして指定できます。文字列の長さとして2*wcslenを使用することを忘れないでください。const char *関数を主張する場合は、最初にUTF-8に変換する必要があります。

于 2011-01-08T18:49:42.923 に答える