Вы не указали проблему, но я полагаю, вы должны передать указатель на функцию:
sqlite3_create_function(handler, "myUpper", 1, SQLITE_ANY, NULL, &myFunc, NULL, NULL)
EDIT:
Если вы переходите к функции wstr.toStdString (). C_str (). Это недопустимо, поскольку возвращаемый указатель является только временным и выходит за пределы области видимости. Что бы я сделал, это:
...
case SQLITE_TEXT: {
QString wstr((char*)sqlite3_value_text(argv[0]));
wstr = wstr.toUpper();
QByteArray array = wstr.toLocal8Bit();
const char* cstr = array.data();
sqlite3_result_text(ctx, cstr, wstr.size() , SQLITE_TRANSIENT);
break;
}
...
Я не пробовал, поэтому проверь это.