C2338 - 매크로 관련 에러

Unreal 이론|2024. 8. 2. 22:31

c2338 - static_assert failed formatting string must be a const TCHAR array

나는 UE_LOG 매크로를 사용하며 위의 에러를 경험했다.

 

UE5.1 버전에서는 UE_LOG 매크로의 정의가 달라 TCHAR변수를 그냥 넘겨도 에러가 안떳지만, 5.2버전 이후부터는 함수 내부에서만 변수 수정이 가능하도록 const static으로 TCHAR변수를 선언해줘야 사용 가능.

 

또한 UE_LOG 사용을 지양하고 GEngine->AddOnScreenDebugMessage 방식을 사용하도록 권장한다.

 

5.3에서는 세가지 방식을 사용.

 

1) TEXT 매크로

UE_LOG(LogTemp, Log, TEXT("Log Message"));

 

2) FString 객체 사용

FString LogString = TEXT("Log Message");

UE_LOG(LogTemp, Log, LogString);

 

3) 권장 - GEngine 사용

FString LogString = TEXT("Log Message");

 

GEngine->AddOnScreenDebugMessage(

                  0, // Unique message ID (optional)

                  5.0f, // Message duration in seconds

                  FColor::Red, // Message color

                  LogString, // Message text

);

'Unreal 이론' 카테고리의 다른 글

언리얼 델리게이트  (0) 2024.08.14
언리얼 컴포지션  (0) 2024.08.13
언리얼 인터페이스  (0) 2024.08.08
언리얼 프로퍼티 시스템(리플렉션)  (0) 2024.08.04
언리얼 오브젝트 개념  (0) 2024.08.03

댓글()