首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这是什么,SOMTEMPLATE_VR_API?

这是什么,SOMTEMPLATE_VR_API?
EN

Stack Overflow用户
提问于 2019-06-27 18:04:09
回答 1查看 366关注 0票数 1

我在虚幻引擎c++ vr实现中找到了这个宏。有人能解释一下这个宏的目的是什么吗?我应该在什么时候使用这个宏?为什么我在虚幻引擎源码中找不到这个宏?

代码语言:javascript
复制
UCLASS()
class SOMTEMPLATE_VR_API className :
EN

回答 1

Stack Overflow用户

发布于 2019-06-27 23:52:32

documentation

考虑这些说明符的最简单方法是,它们用于将函数、类或数据标记为模块的DLL文件的公共。如果将引擎模块中的函数标记为ENGINE_API,则导入Engine的任何模块都可以直接访问该函数。

相反,我们称之为单片模式,它将所有代码放在一个可执行文件中。

根据UBT编译代码的方式,实际的API宏等同于以下内容之一:

在模块化模式下编译模块代码时的

  • __declspec( dllexport ),。

在单片模式下编译时,

  • 为空

API宏仅对从另一个模块静态导入的模块有意义。核心模块就是一个很好的例子--在它们的*.Build.cs文件中,几乎每个UE4模块都将核心指定为导入依赖项。

动态加载的模块非常棒,因为它们可以在启动时被发现(有点像插件),并且经常可以在运行时重新加载。

API宏主要用于较旧的代码,以允许较新的模块从其DLL访问它。在较新的代码中,API宏的使用要少得多,而是设置良好的接口层以跨DLL边界公开功能。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56788666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档