【发布时间】:2022-01-22 08:08:40
【问题描述】:
我一直在尝试在公共标头中将测试类添加到引擎模块之一,使用标准方法将新类/函数公开给其他模块。 但是,每次我在编辑后尝试从源代码重建引擎时,构建失败并出现各种错误,其中有多个错误表明已编辑的标题中存在类的重新定义。其他错误位于完全不同的文件中,其中一些宏将“未定义的标识符”呈现给编译器,仅举几例其他错误。
我从克隆开始,并分叉了 4-27 分支,如果我不进行任何编辑,它就会正确构建;一旦我向源添加任何内容,它就无法构建。
这是我添加到头文件 WindowsApplication.h(模块 ApplicationCore 中的公共头文件)中的类:
//..
//..untouched code lines.
//..
#define WINDOWS_APPLICATION_H_MY_PROJECT_ADDITION 1
//..
//..other code lines(untouched).
//..
//These lines are added to the existing class FWindowsApplication:
class APPLICATIONCORE_API FWindowsApplication
: public GenericApplication
, public IForceFeedbackSystem
{
#if WINDOWS_APPLICATION_H_MY_PROJECT_ADDITION
friend class FXInputProxy_;
#endif // WINDOWS_APPLICATION_H_MY_PROJECT_ADDITION
//..
//..other code lines(untouched).
//..
}
#if WINDOWS_APPLICATION_H_MY_PROJECT_ADDITION
class APPLICATIONCORE_API FXInputProxy_
{
public:
FXInputProxy_() = delete;
FXInputProxy_(FWindowsApplication* InWinApp);
private:
FWindowsApplication* WinApp = nullptr;
XInputInterface* XInput = nullptr;
public:
void Poll(short InRaw[]);
};
#endif // WINDOWS_APPLICATION_H_MY_PROJECT_ADDITION
然后在头文件的源代码里面(WindowsApplication.cpp), 我添加了这些代码行:
#if WINDOWS_APPLICATION_H_MY_PROJECT_ADDITION
FXInputProxy_::FXInputProxy_(FWindowsApplication* InWinApp)
{
//Function not yet implemented!
}
void FXInputProxy_::Poll(short InRaw[])
{
//Function not yet implemented!
}
#endif // WINDOWS_APPLICATION_H_MY_PROJECT_ADDITION
【问题讨论】:
标签: c++ unreal-engine4