Public和Private目录存在的意义
核心目的在于满足到处条件支持其他模块调用。因为模块内的代码默认是不导出给其他模块的,所以UE4约定:将需要到处的给其他模块使用的代码文件的头文件放在模块的Public目录。
IncludePathModuleNames和DependencyModuleNames比较
相同点:二者都能使本模块可以包含其他模块Public目录下的头文件,从而调用函数。
不同点:IncludePathModule只能调用定义全部在头文件里的函数.
Tip:
*IncludePathModuleNames是过时的用法,现在一般只用DependencyModuleNames
PublicDependencyModuleNames, PrivateDependencyModuleNames的区别?
结论:Private隐藏所有信息,Public只传递头文件信息.链接永不传递,需显式在Build.cs里添加.
最终结论:建议只使用PrivateDependencyModuleNames.杜绝迷惑.
MinimalAPI说明符的作用?
答:暴露(导出)该类的类型信息让其它模块可以
-
Cast到该类型
-
继承该类型 (该类型的所有定义在.cpp文件的虚函数都需要导出)
-
使用内联函数
[YourModuleName]_API宏的作用?
答:
-
放函数声明前用于暴露(导出)该函数
-
放类声明前用于暴露(导出)该类的所有内容
模块的类型有多少种可以选择?
答:请查看Projects模块中的EHostType::Type.(UBT里也能找到