「C」コードと「コンソール アプリケーション」で GNSDK api を実験しました。問題ありません。現在、「C++」コードと Qt 5.1 で GNSDK ラッパーを実験しています。次の単純な行で停止します。
gracenote::GnString s_MyString = "another string";
この行を正しくする方法は?
GNSDK の GnString は、SDK から出力されるマネージド文字列にのみ使用されます。シリアライズされた GnUser データを 1 つとして返すために、使用されるインスタンスはごくわずかです。GNSDK とやり取りする他のすべての文字列は、「C」文字列 (直接文字列ポインター) です。GNSDK はこれらを gnsdk_cstr_t としてタイプします。
シリアル化された文字列を RegisterUser に渡すには、'C' 文字列を指定します (ただし、UTF8 でエンコードされていることを確認してください)。
QString から、これを行うことができるはずです。
gnsdk_cstr_t serializedUser = text.toUtf8().constData();
この serializedUser を RegisterUser に渡すことができます。
つまり、アプリで使用するために GnString を作成する必要はありません。GNSDK からの特定の出力値に対してのみ存在します。