wie die Frage sagt, was wäre eine geeignete Template-Funktion zum Konvertieren von wstring in const char *? Mein Programm ist vollständig in Unicode geschrieben, aber SQlite benötigt const char * für die meisten ihrer Funktionen.Funktion zum Umwandeln von wstring in const char * für SQlite
Ich habe die Methode gefunden, dies auf msdn zu tun, hier: http://msdn.microsoft.com/en-us/library/ms235631%28v=vs.80%29.aspx, wo Name ein wstring ist.
// 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);
Wenn Sie eine plattformübergreifende Anwendung schreiben, beachten Sie, dass 'wchar_t' nicht unbedingt eine UTF-16-Codeeinheit ist. Natürlich ist es unter Windows. – dan04
Warum muss ich die Länge der Zeichenfolge mit zwei multiplizieren? – rem45acp
Da wcslen gibt die Länge in Anzahl der wchar_t Zeichen, die 2 Bytes sind, und SQLite will die Länge in Bytes. – hmuelner