Мы экспериментировали с GNSDK api с кодом «C» и «Консольным приложением», все нормально, сейчас мы экспериментируем с оболочками GNSDK с кодом «C ++» и Qt 5.1, мы остановились на этой простой строке:
gracenote::GnString s_MyString = "another string";
Как сделать эту строку правильной?
GnString из GNSDK используется только для поступления управляемых строк из из SDK. Есть только несколько случаев, когда он используется, возвращая сериализованные данные GnUser как единое целое. Все остальные строки в и из GNSDK являются строками ‘C’ (прямые строковые указатели). GNSDK печатает их как gnsdk_cstr_t.
Для передачи сериализованной строки в RegisterUser просто передайте ей строку ‘C’ (но убедитесь, что она закодирована в UTF8).
Из QString вы должны быть в состоянии сделать это:
gnsdk_cstr_t serializedUser = text.toUtf8().constData();
Вы можете передать это serializedUser в RegisterUser.
Короче говоря, вам не нужно создавать GnString для использования в вашем приложении. Это только для определенных выходных значений из GNSDK.
Других решений пока нет …