You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
感谢思路。这个库我之前也有了解过,没有采用的原因是借助第三方库的时候,可操作性和灵活性就会因此降低,也会带来一些新的问题,比如如何按需导出,如何分别导出反射类型和非反射类型等。
关于Building Unreal Engine as a Library,官方只提供了Windows下的实现,Android和IOS需要自己去实现(这块QQ做好了,以及了解到有另外一个公司也做了这件事情),所以这套方案成本较高。
*_API这个可以参考[模块的宏定义。
NativeAOT,在不借助此的情况下,通过反射已经达到比较好的效果。
https://github.com/mono/CppSharp
这个库只需要提供头文件和.lib文件就可以自动生成绑定代码
源码的
Engine\Intermediate\Build\Win64\UnrealEditor\Inc\ 文件夹下有UHT生成的反射文件
Engine\Intermediate\Build\Win64\x64 文件夹下是编译模块时的宏
Engine\Binaries\Win64里的dll导出成lib就可以用了
再把DllImport改成MethodImplOptions.InternalCall应该就能用
CppSharp是一个C#的库,功能很强大,就是教程有点少,只有几篇官方文档
https://github.com/mono/CppSharp/tree/main/docs
也没有对所有API介绍,有些函数只能自己猜
可能对一些复杂的模板类不能导出
我还看到虚幻还可以将整个引擎导出成一个库
在C#就可以启动UE,但也不是很好用,而且只支持Windows平台
https://docs.unrealengine.com/5.2/zh-CN/building-unreal-engine-as-a-library/
实际导出后发现dll没有export所有函数,只有文档里的4个内置api
查看UBT的Definination发现导出时没有将XXX_API宏define为DLLEXPORT
请问大佬知道怎么才能导出函数吗
最近的.Net7 新增的NativeAOT可以将C#代码导出为C++可以调用的DLL,唯一的缺点是只能导出static函数
The text was updated successfully, but these errors were encountered: