Невозможно вернуть ТОЧКУ, чтобы использовать в другой функции

Получил этот код:
(Я использую FireBreath)

TestPluginAPI.h
FB::variant ClickSemulationMove(POINT);
FB::variant ClickSemulationClick(POINT);TestPluginAPI.cpp

FB::variant TestPluginAPI::ClickSemulationClick(POINT pt)
{
ShowCursor(true);
MouseLeft();
MouseReturn(pt.x, pt.y);
ShowCursor(true);
return 0;
}

FB::variant TestPluginAPI::ClickSemulationMove(POINT &pt)
{
MouseMove(-325, 605);
POINT pt;
GetCursorPos(&pt);
return 0;
}

Идея в том, что в первую очередь идет ClickSemulationMove, сохраняет pt от GetCursorPos (мне нужен именно этот pt, потому что я должен получить его до перемещения мыши, чтобы потом вернуться туда.) и затем передать его ClickSemulationClick использовать в MouseReturn,
Но я получил следующие ошибки:
C2511: FB::variant TestPluginAPI::ClickSemulationMove(POINT &) overloaded member function not found in "TestPluginAPI"
а также
error C2665: FB::variant_detail::conversion::convert_variant: none of the 5 overloads can convert all parameter (эта ошибка содержит кучу кода и параметров ниже, будет публиковать при необходимости)
Звучит довольно просто, но что именно я делаю не так?

0

Решение

2 проблемы здесь; Во-первых, вы не можете передавать аргументы по ссылке в метод NPAPI, и, следовательно, вы не можете использовать метод Firebreath. Во-вторых, вы не можете использовать любой произвольный тип.

У вас есть несколько вариантов:

  1. Для ввода я рекомендую просто передать int x, int y в функцию.
  2. Для вывода вы можете либо передать декодируемую строку, либо FB :: VariantList со значениями, которые вам нужны, которые станут массивом javascript. Вы также можете вернуть FB :: VariantMap, который станет объектом javascript, позволяющим передавать именованные значения x и y.
  3. Если вы действительно хотите иметь возможность передавать вещи по ссылке, вы можете передать в FB :: JSObjectPtr, который должен быть объектом или массивом javascript ({} или []), который вы сохранили в javascript. Затем вы можете внести в него изменения, вызвав -> SetProperty («x», xval) и т. Д. Или -> SetProperty (0, xval), если вы использовали массив. Вы также можете вызвать -> Invoke («push», FB :: variable_list_of (xval)), чтобы просто нажать на массив.
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]