用于将Sslite的wstring转换为const char *的函数

时间:2011-01-08 17:10:52

标签: c++ visual-studio-2010 sqlite wstring

正如问题所说,将wstring转换为const char *的合适模板函数是什么?我的程序完全用Unicode编写,但是,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 个答案:

答案 0 :(得分:2)

您应该使用* 16 sqlite函数(例如sqlite3_prepare16),其中you4可以将UTF-16(即wstring)作为参数。 Don_t忘记使用2 * wcslen作为字符串的长度。如果你坚持使用const char *函数,你必须先转换为UTF-8。