Я столкнулся с проблемой, которую не знаю, как ее решить. Вот мой код.
#include "rapidjson/write.h"
#include "rapidjson/stringbuffer.h"
...
void WriteResultToJSON()
{
CHAR a[] = "a";
TCHAR b[] = _T("b");
WCHAR c[] = L"c";
StringBuffer s;
Writer<StringBuffer> writer(s);
writer.StartObject();
writer.String("A:");
writer.String(a);
writer.String("B");
writer.String(b);
writer.String("C");
writer.String(c);
write.EndObject();
printf(s.GetString());
}
Когда значение набора символов проекта - «Использовать набор символов Unicode», я не могу выполнить компиляцию. Только когда он установлен на «Использовать многобайтовый набор символов».
Ошибка говорит:
no instance of overloaded function "rapidjson::Writter<OutputStream, SourceEncoding, Target Encoding, StackAllocator>::String [with OutputStream=rapidjson::StringBuffer, SourceEncoding=rapidjson::UTF8<char>,TargetEncoding=rapidjson::UTF8<char>, StackAllocator=rapidjson::CtrAllocator]" matches the argument list
argument types are (TCHAR [2])
object type is: rapidjson::Writter<rapidjson::StringBuffer, rapidjson::UTF8<char>, rapidjson::UTF8<char>, rapidjson::CrtAllocator>
У меня плохое предчувствие, что Rapidjson поддерживает только utf8, и он не будет работать с моим текущим проектом, который находится в utf16, или есть ли способ его использовать, если для набора символов установлено значение Unicode?
Спасибо
ярый