我在虚幻引擎c++ vr实现中找到了这个宏。有人能解释一下这个宏的目的是什么吗?我应该在什么时候使用这个宏?为什么我在虚幻引擎源码中找不到这个宏?
UCLASS()
class SOMTEMPLATE_VR_API className :发布于 2019-06-27 23:52:32
考虑这些说明符的最简单方法是,它们用于将函数、类或数据标记为模块的DLL文件的公共。如果将引擎模块中的函数标记为ENGINE_API,则导入Engine的任何模块都可以直接访问该函数。
相反,我们称之为单片模式,它将所有代码放在一个可执行文件中。
根据UBT编译代码的方式,实际的API宏等同于以下内容之一:
在模块化模式下编译模块代码时的
__declspec( dllexport ),。在单片模式下编译时,
API宏仅对从另一个模块静态导入的模块有意义。核心模块就是一个很好的例子--在它们的*.Build.cs文件中,几乎每个UE4模块都将核心指定为导入依赖项。
动态加载的模块非常棒,因为它们可以在启动时被发现(有点像插件),并且经常可以在运行时重新加载。
API宏主要用于较旧的代码,以允许较新的模块从其DLL访问它。在较新的代码中,API宏的使用要少得多,而是设置良好的接口层以跨DLL边界公开功能。
https://stackoverflow.com/questions/56788666
复制相似问题