1


0

SQliteのwstringをconst char *に変換する関数

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

ここでmsdnでこれを行う方法を見つけました:http://msdn.microsoft.com/en-us/library/ms235631%28v=vs.80%29.aspx、ここでnameは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);

1 Answer


2


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