正如问题所说,将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);
答案 0 :(得分:2)
您应该使用* 16 sqlite函数(例如sqlite3_prepare16),其中you4可以将UTF-16(即wstring)作为参数。 Don_t忘记使用2 * wcslen作为字符串的长度。如果你坚持使用const char *函数,你必须先转换为UTF-8。