在 Chromium Embedded Framework 中将 CefRefPtr<CefV8Value> 转换为 int

Convert CefRefPtr<CefV8Value> into int in Chromium Embedded Framework

本文关键字:gt CefV8Value 转换 int Chromium lt Framework 中将 CefRefPtr Embedded      更新时间:2023-10-16

我正在尝试扩展Chromium Embedded Framework附带的cefsimple应用程序,以包含V8处理程序。到目前为止,我编写的代码是这样的;

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-int时遇到问题。我找到了函数CefV8Value::GetIntValue();,但我不知道如何使用它。

尝试调用object->GetIntValue()

原因是CefRefPtr是一个引用CefV8Value的对象,因此您需要箭头运算符来访问它指向的底层CefV8Value对象