在虚幻引擎中触发C++ dll的事件

Triggering event of C++ dll in unreal engine

本文关键字:C++ dll 事件 引擎      更新时间:2023-10-16

我正在尝试使用dll,它通过线程读取传入的消息。使用蓝图类导入虚幻引擎,因为我无法收到传入的消息。我计划在dll中有一个事件,我将把事件处理程序放在虚幻引擎代码中。

你能帮帮我吗,如果这是如何使用它,这可能吗?

我正在尝试这样的东西 在这里输入链接描述

在 dll 代码中

EventCallback   OnEvent = NULL;
DLL_EXPORT void  WINAPI SetEventCallback(EventCallback func)
{
OnEvent = func;
}
DLL_EXPORT void WINAPI FireEvent()
{
if (OnEvent)
OnEvent();
}

在虚幻引擎代码中

typedef void(*_getSetEventCallback)(EventCallback);
_getSetEventCallback m_getSetEventCallbackFromDll=NULL;
void CALLBACK HandleEvent()
{   
FString fstringVar = "Triggered by Event in dll";
UE_LOG(LogTemp, Warning, TEXT("%s"), fstringVar);
}
void UVectorDll::importSetEventCallback()
{
if (c_dllHandle != NULL)
{
FString procName = "SetEventCallback";    // Needs to be the exact name of the DLL method.
m_getSetEventCallbackFromDll = (_getSetEventCallback)FPlatformProcess::GetDllExport(c_dllHandle, *procName);
m_getSetEventCallbackFromDll(HandleEvent);
}
}

FireEvent可以通过dll或虚幻引擎完成