Я делаю надстройку c ++ для node.js, и у меня проблемы с передачей и получением данных. Я понял, как преобразовать v8 :: Number в double, double в v8 :: Number и int в v8: Number, но мне нужно еще немного. В основном, v8 :: String в std :: string и обратно, v8 :: Number в int и v8 :: Array в Array и обратно. Также было бы здорово перенести js объектов в некоторые переменные c ++, но это менее необходимо. Кто-нибудь знает, как это сделать? PS Я просмотрел документы и ничего не нашел о массивах и объектах, и только это string a (*v8::String::Utf8Value(args[0]->ToString()))
в соответствии со строками. Но не получается, выдает ошибку error C2660: v8::Value::ToString: function does not get 0 arguments
и error C2512: v8::String::Utf8Value: no suitable default constructor
. У меня больше нет идей, как это реализовать. Может кто поможет? А еще я пытался что-то сделать с возвратом данных из c ++. Таким образом args.GetReturnValue().Set(v8::String::NewFromUtf8(isolate, "world").ToLocalChecked());
работает, но если я сделаю вот так:
string s = "world";
args.GetReturnValue().Set(v8::String::NewFromUtf8(isolate, s).ToLocalChecked());
я получаю ошибку error C2664: "v8::MaybeLocal<v8::String> v8::String::NewFromUtf8(v8::Isolate *,const char *,v8::NewStringType,int)": cannot convert argument 2 from "std::string" to "const char *"
И я понятия не имею, что здесь не так. У кого-то есть опыт работы с надстройками C ++ и типами v8, как это сделать?