Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是SOMTEMPLATE\u VR\u API? 我在虚幻引擎C++ VR实现中发现了这个宏。 有人能解释一下这个宏的目标是什么吗? 我应该什么时候使用这个宏? 为什么我在虚幻引擎资源中找不到这个宏 UCLASS() class SOMTEMPLATE_VR_API className :_C++_Macros_Unreal Engine4 - Fatal编程技术网

什么是SOMTEMPLATE\u VR\u API? 我在虚幻引擎C++ VR实现中发现了这个宏。 有人能解释一下这个宏的目标是什么吗? 我应该什么时候使用这个宏? 为什么我在虚幻引擎资源中找不到这个宏 UCLASS() class SOMTEMPLATE_VR_API className :

什么是SOMTEMPLATE\u VR\u API? 我在虚幻引擎C++ VR实现中发现了这个宏。 有人能解释一下这个宏的目标是什么吗? 我应该什么时候使用这个宏? 为什么我在虚幻引擎资源中找不到这个宏 UCLASS() class SOMTEMPLATE_VR_API className :,c++,macros,unreal-engine4,C++,Macros,Unreal Engine4,API宏用于向其他模块公开类和函数 从: 考虑这些说明符最简单的方法是,它们用于将函数、类或数据标记为模块DLL文件的公共。如果将引擎模块中的函数标记为Engine_API,则导入引擎的任何模块都可以直接访问该函数 这些仅在以模块化模式编译引擎(桌面平台上的DLL文件)时使用。相反,我们称之为单片模式,它将所有代码放在一个可执行文件中。生成类型由未生成工具设置和/或平台和生成配置控制 根据UBT编译代码的方式,实际API宏等同于以下之一: \uuu declspec(dllexport),在模

API宏用于向其他模块公开类和函数

从:

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

这些仅在以模块化模式编译引擎(桌面平台上的DLL文件)时使用。相反,我们称之为单片模式,它将所有代码放在一个可执行文件中。生成类型由未生成工具设置和/或平台和生成配置控制

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

  • \uuu declspec(dllexport)
    ,在模块化模式下编译模块代码时

  • \uu declspec(dllimport)
    ,当包含要导入的模块的公共模块头时

  • 在单片模式下编译时为空

API宏仅适用于从另一个模块静态导入的模块。核心模块就是一个很好的例子——UE4中几乎所有其他模块都在其*.Build.cs文件中将核心指定为导入依赖项

许多模块不需要静态导入(例如SceneOutliner模块)。我们将这些模块称为动态加载的模块。动态加载的模块非常棒,因为它们可以在启动时被发现(有点像插件),并且经常可以动态地重新加载

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


它们被虚幻构建工具用于跨模块类查找。