我想用我的应用程序做这两件事(仅限 Windows):
- 允许用户在启动应用程序之前将本机代码插入(使用工具)到我的应用程序中。
- 在运行时直接从内存中运行这个用户插入的代码。
理想情况下,用户必须很容易指定此代码。
我有两个想法如何做到这一点,我现在正在考虑:
用户会将本机 dll 嵌入到应用程序的资源中。应用程序将使用本文中的技术直接从内存中加载此 dll 。
不知何故,将用户指定的 .dll 方法的汇编代码复制到我的应用程序资源中,并按照本文所述从堆中执行此代码。
有没有更好的选择来做到这一点?如果没有,对这些解决方案中可能导致问题的任何想法?
编辑
我特别不想使用LoadLibrary*
调用,因为它们需要 dll 文件已经在我试图避免的硬盘驱动器上。我也在努力让拆解更难。
编辑
更多细节:应用程序代码在我的控制之下并且是原生的。我只是想为用户提供一种在编译和部署我的应用程序后嵌入他自己的自定义功能的方法。
我可以对用户代码进行任意限制,这不是问题。