`#include "Windows/AllowWindowsPlatformTypes.h"` 와 `#include "Windows/HideWindowsPlatformTypes.h"`를 사용하는 이유는 주로 윈도우 플랫폼의 타입 및 정의들과 언리얼 엔진의 타입 및 정의들 간의 충돌을 방지하기 위해서입니다. 구체적으로 설명하자면:
### 충돌 방지 및 호환성 유지
1. **타입 충돌 방지**:
- 윈도우 헤더 파일(`Windows.h` 등)에는 언리얼 엔진의 헤더 파일과 동일한 이름을 가진 타입이나 매크로 정의들이 있습니다. 예를 들어, `DWORD`, `TEXT`, `MIN`, `MAX` 등의 이름이 언리얼 엔진과 윈도우 헤더 파일 모두에 정의되어 있어 충돌할 수 있습니다.
- `AllowWindowsPlatformTypes.h`는 윈도우 플랫폼 타입들을 포함하기 전에 언리얼 엔진 자신이 정의한 타입과 매크로들을 저장해 둡니다.
- `HideWindowsPlatformTypes.h`는 이후 윈도우 플랫폼 타입을 숨기고, 저장해 둔 언리얼 엔진의 정의들을 복원합니다.
2. **코드 가독성 및 유지보수 용이성**:
- 이 지시문들을 사용하면, 코드가 더 명확하고 유지보수하기 쉬워집니다. 이는 다른 개발자가 코드를 읽고 이해할 때 도움이 됩니다.
- 코드의 특정 부분만 윈도우 관련 헤더 파일을 포함하도록 명시적으로 지정함으로써, 플랫폼 의존적인 코드가 필요한 경우와 그렇지 않은 경우를 구분할 수 있습니다.
3. **플랫폼 간 호환성**:
- 이렇게 함으로써, 다른 플랫폼에서도 컴파일 오류를 최소화할 수 있습니다. 언리얼 엔진은 여러 플랫폼을 지원하기 때문에, 윈도우 전용 코드를 안전하게 격리하여 다른 플랫폼용 코드와 충돌하지 않게 합니다.
- 이를 통해 프로젝트가 다수의 플랫폼에서 원활하게 동작하도록 보장할 수 있습니다.
### 예시 코드
```cpp
#include "Windows/AllowWindowsPlatformTypes.h"
#include <Windows.h>
#include "Windows/HideWindowsPlatformTypes.h"
// 윈도우 플랫폼 타입이나 함수들을 사용하는 코드
void SomeWindowsSpecificFunction()
{
// 윈도우 API 사용
MessageBox(NULL, TEXT("Hello World"), TEXT("Title"), MB_OK);
}
```
위 코드에서는 `AllowWindowsPlatformTypes.h`와 `HideWindowsPlatformTypes.h`를 사용하여 `Windows.h`를 안전하게 포함하고, `MessageBox` 같은 윈도우 API 함수를 사용합니다. 이렇게 하면, 언리얼 엔진과 윈도우 헤더 파일 간의 충돌을 효과적으로 방지할 수 있습니다.
'3D world > Unreal Engine Plug-ins' 카테고리의 다른 글
OpenCV installation (0) | 2021.01.31 |
---|---|
RHI, Render Hardware Interface (0) | 2021.01.03 |
H.264 (0) | 2020.06.14 |
UTexture2D (0) | 2019.11.20 |
NDI (0) | 2019.09.12 |
최근댓글