Надеюсь тут есть люди знакомые с плюсами.
Столкнулся с не понятными, для меня, определениями параметров в функции
Код:
RVExtensionRegisterCallback(int(*callbackProc)(char const *name, char const *function, char const *data))
и как подобное реализовать на пурике хз(
это вроде рабочий пример DLL, которуя в пытаюсь реализовать на пурике
Код:
#include <thread>
#include <string>
#include <chrono>
extern "C"
{
__declspec (dllexport) void __stdcall RVExtensionRegisterCallback(int(*callbackProc)(char const *name, char const *function, char const *data));
__declspec (dllexport) void __stdcall RVExtension(char *output, int outputSize, const char *function);
}
int(*callbackPtr)(char const *name, char const *function, char const *data) = nullptr;
void __stdcall RVExtensionRegisterCallback(int(*callbackProc)(char const *name, char const *function, char const *data))
{
callbackPtr = callbackProc;
}
void __stdcall RVExtension(char *output, int outputSize, const char *function)
{
if (!callbackPtr)
return;
std::thread ([](std::string fnc)
{
using namespace std::chrono_literals;
fnc = "[1,2,3," + fnc + "]";
for (int i = 1; i < 4; ++i) // run 3 times
{
std::this_thread::sleep_for(2s); // sleep for 2 seconds
callbackPtr("test_callback", ("fncToExecute_" + std::to_string(i)).c_str(), fnc.c_str());
}
}, function).detach();
}