C++ FireBreath将值从一个函数传递到另一个函数,并在JavaScript中使用该函数

C++ FireBreath将值从一个函数传递到另一个函数,并在JavaScript中使用该函数,c++,visual-c++,plugins,firebreath,C++,Visual C++,Plugins,Firebreath,我如何通过TestPluginAPI::ClickSemulationMove 要TestPluginAPI::单击符号单击(int-ptx,int-pty) 问题是我必须在JavaScript中使用这两个函数,因此不能简单地将它从一个公开到另一个 FB::variant TestPluginAPI::ClickSemulationClick(int ptx, int pty) { ShowCursor(true); MouseLeft(); MouseReturn(ptx, pty); Sh

我如何通过
TestPluginAPI::ClickSemulationMove
TestPluginAPI::单击符号单击(int-ptx,int-pty)

问题是我必须在JavaScript中使用这两个函数,因此不能简单地将它从一个公开到另一个

FB::variant TestPluginAPI::ClickSemulationClick(int ptx, int pty)
{

ShowCursor(true);
MouseLeft();
MouseReturn(ptx, pty);
ShowCursor(true);
return 0;
}

FB::variant TestPluginAPI::ClickSemulationMove(int ptx, int pty)
{
POINT pt;
MouseMove(-325, 605);
GetCursorPos(&pt);
ptx = pt.x;
pty = pt.y;
return 0;
}
当我得到它时,我需要使用JSObjectPtr或FB::VariantList,但是没有任何示例,我有点困惑。有人能给我看一下简单的代码示例吗?

你读了吗?所有的信息都在那里

要返回具有两个值的数组(将是javascript数组),只需执行以下操作:

return FB::variant_list_of(pt.x)(pt.y);
然后在javascript中,您可以调用其他方法,如:

var res = plugin().ClickSemulationMove(); // Assuming you don't actually need args here
plugin().ClickSemulationClick(res[0], res[1]);
您还可以直接传入数组,在这种情况下,您可以在C++中执行类似的操作:

FB::variant TestPluginAPI::ClickSemulationClick(const std::vector<int>& arr)
{
    ShowCursor(true);
    MouseLeft();
    MouseReturn(arr[0], arr[1]);
    ShowCursor(true);
    return 0;
}
FB::variant TestPluginAPI::ClickSemulationClick(const std::vector&arr)
{
ShowCursor(true);
MouseLeft();
鼠标旋转(arr[0],arr[1]);
ShowCursor(true);
返回0;
}

说真的,FireBreath代码库中有所有这些东西的例子;你应该在那里呆一段时间。我看到你问的大多数问题都可以通过阅读代码很快发现,然后你就会更好地理解它。

你又帮了我一次忙,thx taxilian。当我突然想到这一点时,我没有时间,这就是为什么把它放在这里。是的,我没有阅读那些JSAPI文档,不知道为什么,但我会的。