2015-11-05 5 views
0

Я пытаюсь расширить приложение cefsimple, которое поставляется вместе с Chromium Embedded Framework, чтобы включить обработчик V8. Код, который я написал, выглядит так до сих пор;Преобразование CefRefPtr <CefV8Value> в int в Xromium Embedded Framework

bool SimpleHandler::Execute(const CefString& name, 
      CefRefPtr<CefV8Value> object, 
      const CefV8ValueList& arguments, 
      CefRefPtr<CefV8Value>& retval, 
      CefString& exception) { 
    int argn = arguments.size(); 
    if (name == "serial_connect" && (argn == 4 || argn == 1)) 
    { 
     if (connection.isOpen()) 
      connection.~Serial(); 
     connection = NULL; 
     if (argn == 1) 
     { 
      int port = (arguments[0]); // convert to int? 
     } 
     else 
     { 

     } 
    } 
    else if (name == "serial_send" && argn >= 1) 
    { 

    } 
    else if (name == "serial_recieve") 
    { 

    } 
    else 
     return false; 
    return true; 
} 

У меня возникли проблемы, преобразующие родовой объект значения, возвращенный данный обработчик в CPP междунар, что я могу использовать в расчетах. Я нашел функцию CefV8Value::GetIntValue();, но я не могу понять, как ее использовать.

ответ

0

попробуйте позвонить object->GetIntValue()

Причина заключается в том, что CefRefPtr является объектом, который содержит ссылку на CefV8Value, так что вам нужно оператору со стрелкой, чтобы получить доступ к основной CefV8Value объекта он указывает на

+0

'object' не делает имеют метод под этим именем. Или любой тип конкретного метода получения на самом деле; просто '.get();'. – Maurdekye

+0

Он должен, но вам может потребоваться вызвать его с помощью '->' как в 'object-> GetIntValue()' – kcraigie

+0

А, спасибо! Я этого не знал. – Maurdekye

Смежные вопросы