我正在搜索 stackoverflow 问题,但没有一个回答了我的问题。我有一个游戏引擎,我想在运行时加载玩家 AI(用 C++ 编写)。
- 点击按钮,出现文件对话框
- 使用 AI 选择文件(.dll 或其他?)
- 点击“开始”按钮,游戏开始使用我添加的 AI。
AI 可以是一个方法或整个类,这并不重要。我想我应该生成 .dll,但我不确定该怎么做。这个类应该是这样的:
class PlayerAI
{
void computeSomething(list of argument, Object& output)
{
// some logic
}
}
最佳答案
假设纯 Windows 平台,因为没有指定 -
如果你想注入(inject) DLL,首先使用 LoadLibrary 函数获取它的句柄,如下所示:
HINSTANCE handleLib;
handleLib = LoadLibrary(TEXT("YourDLL.dll"));
然后您可以获得指向库中特定函数的函数指针。像这样:
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...
}
关于c++ - 如何在运行时添加代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32972108/