如何在运行时添加代码

以撒

我正在搜索stackoverflow问题,但没有一个回答我的问题。我有一个游戏引擎,我想在运行时加载播放器AI(用C ++编写)。

  1. 点击按钮,出现文件对话框
  2. 选择带有AI的文件(.dll或其他?)
  3. 单击“开始”按钮,游戏开始使用我添加的AI。

AI可以是方法,也可以是整个类,都没关系。我想我应该生成.dll,但是我不确定该怎么做。此类应如下所示:

class PlayerAI
{
    void computeSomething(list of argument, Object& output)
    {
        // some logic
    }
}
理查德·泰瑞格里姆(Richard Tyregrim)

假设为纯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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在运行时向对象添加代码?-实码

来自分类Dev

如何在运行时在Typescript中添加属性

来自分类Dev

如何在运行时添加和显示JLabel?

来自分类Dev

如何在运行时在Swing中添加JLabel?

来自分类Dev

如何在C#中在运行时添加/执行并最终将新代码删除到程序中

来自分类Dev

如何在运行时在浏览器中运行代码

来自分类Dev

刷新页面后如何在运行时更改代码

来自分类Dev

JIT编译实际上如何在运行时执行机器代码?

来自分类Dev

如何在运行时首先使用EF代码从ObjectContext获取实体类型的列表?

来自分类Dev

Scala-如何在运行时从外部文件编译代码?

来自分类Dev

如何在运行时将字符串转换为代码

来自分类Dev

如何在运行时编译和使用Kotlin代码?

来自分类Dev

如何在运行时在Visual Studio中编辑C#代码,而不是编辑并继续

来自分类Dev

如何在运行时将动态资源分配给WPF代码中的按钮

来自分类Dev

如何在运行时编译的C#代码中使用“ UnityEngine”?

来自分类Dev

刷新页面后如何在运行时更改代码

来自分类Dev

如何在运行时在Visual Studio中编辑C#代码,而不是编辑并继续

来自分类Dev

如何在运行时(C#)查看 lambda 表达式的源代码?

来自分类Dev

如何在运行时从代码更改“video::-webkit-media-controls-panel”?

来自分类Dev

如何在运行时使用VBA将按钮添加到MS Access表单并将代码添加到_Click()事件

来自分类Dev

如何在运行时运行php扩展

来自分类Dev

如何在运行时以编程方式添加xjc插件?

来自分类Dev

如何在运行时在spring-SAML中添加新的idp元数据

来自分类Dev

如何在运行时从Glade定义中添加Gtk :: Notebook选项卡?

来自分类Dev

Laravel:如何在运行时为语言添加单词

来自分类Dev

如何在运行时以Windows窗体添加链接标签

来自分类Dev

如何在运行时将动画控制器添加到角色?

来自分类Dev

如何在运行时为Obj-C添加类方法?

来自分类Dev

如何在运行时添加log4net追加程序?

Related 相关文章

  1. 1

    如何在运行时向对象添加代码?-实码

  2. 2

    如何在运行时在Typescript中添加属性

  3. 3

    如何在运行时添加和显示JLabel?

  4. 4

    如何在运行时在Swing中添加JLabel?

  5. 5

    如何在C#中在运行时添加/执行并最终将新代码删除到程序中

  6. 6

    如何在运行时在浏览器中运行代码

  7. 7

    刷新页面后如何在运行时更改代码

  8. 8

    JIT编译实际上如何在运行时执行机器代码?

  9. 9

    如何在运行时首先使用EF代码从ObjectContext获取实体类型的列表?

  10. 10

    Scala-如何在运行时从外部文件编译代码?

  11. 11

    如何在运行时将字符串转换为代码

  12. 12

    如何在运行时编译和使用Kotlin代码?

  13. 13

    如何在运行时在Visual Studio中编辑C#代码,而不是编辑并继续

  14. 14

    如何在运行时将动态资源分配给WPF代码中的按钮

  15. 15

    如何在运行时编译的C#代码中使用“ UnityEngine”?

  16. 16

    刷新页面后如何在运行时更改代码

  17. 17

    如何在运行时在Visual Studio中编辑C#代码,而不是编辑并继续

  18. 18

    如何在运行时(C#)查看 lambda 表达式的源代码?

  19. 19

    如何在运行时从代码更改“video::-webkit-media-controls-panel”?

  20. 20

    如何在运行时使用VBA将按钮添加到MS Access表单并将代码添加到_Click()事件

  21. 21

    如何在运行时运行php扩展

  22. 22

    如何在运行时以编程方式添加xjc插件?

  23. 23

    如何在运行时在spring-SAML中添加新的idp元数据

  24. 24

    如何在运行时从Glade定义中添加Gtk :: Notebook选项卡?

  25. 25

    Laravel:如何在运行时为语言添加单词

  26. 26

    如何在运行时以Windows窗体添加链接标签

  27. 27

    如何在运行时将动画控制器添加到角色?

  28. 28

    如何在运行时为Obj-C添加类方法?

  29. 29

    如何在运行时添加log4net追加程序?

热门标签

归档