我正在搜索stackoverflow问题,但没有一个回答我的问题。我有一个游戏引擎,我想在运行时加载播放器AI(用C ++编写)。
AI可以是方法,也可以是整个类,都没关系。我想我应该生成.dll,但是我不确定该怎么做。此类应如下所示:
class PlayerAI
{
void computeSomething(list of argument, Object& output)
{
// some logic
}
}
假设为纯Windows平台,因为未指定-
如果要注入DLL,请首先使用LoadLibrary-function来获取它的句柄,如下所示:
HINSTANCE handleLib;
handleLib = LoadLibrary(TEXT("YourDLL.dll"));
然后,您可以在lib中获得指向特定函数的函数指针。像这样:
FUNC_PTR func;
func = (FUNC_PTR) GetProcAddress(handleLib, "yourFunc");
然后,您可以像这样调用该函数:
(func) (L"TESTSTRING HERE");
完成后,调用FreeLibrary(libhandle)
像这样的实例在VS中如何声明为已导出函数(这是在预编译的DLL中标记您的函数所必需的:
__declspec(dllexport) int __cdecl yourFunc(LPWSTR someString)
{
//Code here...
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句