인프런 커뮤니티 질문&답변

김성범님의 프로필 이미지
김성범

작성한 질문수

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

UI

UI 강의에서 예외 발생 오류 질문 드립니다.

작성

·

39

0

UI 강의 22:16에서 실행을 했을

image.png

아래와 같이 오류가 발생 하네요..

{

Button* ui = new Button();

ui->SetSprite(GET_SINGLE(ResourceManager)->GetSprite(L"Start_Off"), BS_Default);

ui->SetPos({ 200, 200 });

uis.pushback(ui);

}

ui->SetSprite 부분을 //처리할 경우 오류가 안나는 걸로 봐서는 여기서 뭔가 잘못된 것 같은데 아무리 찾아도 안나오네요..

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
질문해주신 UI 강의의 예외 발생 오류와 관련하여, 제가 직접 코드를 볼 수는 없지만 설명해주신 상황을 바탕으로 문제를 추측해보겠습니다.

해당 이미지는 Microsoft Visual Studio IDE에서 C++ 언어로 코딩 중인 모습을 보여주고 있습니다. “Texture” 클래스와 “Button” 클래스 등 게임 또는 그래픽 관련 애플리케이션을 개발 중인 것으로 보입니다. 또한, “Button” 클래스의 “Render” 멤버 함수 코드가 보이며, 오류 창에는 널 포인터 예외 또는 널 포인터 참조 문제를 제시하고 있습니다.

ui->SetSprite(GET_SINGLE(ResourceManager)->GetSprite(L"Start_Off"), BS_Default); 코드 부분에서 오류가 발생하는 경우, 가장 먼저 확인해야 할 부분은 GET_SINGLE(ResourceManager)->GetSprite(L"Start_Off") 이 부분이 정상적으로 Sprite 객체를 반환하는지 여부입니다. GET_SINGLE(ResourceManager)null을 반환하거나, GetSprite(L"Start_Off")null을 반환하는 경우 ui->SetSprite에 널 포인터를 전달하게 되어 오류가 발생할 수 있습니다.

해결 방안으로는 다음의 접근을 추천드립니다:
1. GET_SINGLE(ResourceManager)가 정상적으로 ResourceManager 인스턴스를 반환하는지 확인하세요. 만약 null을 반환한다면 ResourceManager의 싱글턴 인스턴스가 제대로 생성되지 않은 것일 수 있습니다.
2. GetSprite(L"Start_Off") 메서드가 null을 반환하지 않는지 확인하세요. 이 메서드가 null을 반환한다면, "Start_Off" 스프라이트 리소스가 정상적으로 로드되지 않았을 가능성이 있습니다. 리소스 경로 또는 이름에 오타가 없는지, 해당 리소스가 프로젝트에 포함되어 있는지 등을 확인해 보세요.

오류를 해결하기 위해 해당 부분에서 반환되는 객체들이 제대로 생성되고 있는지, 널 포인터가 아닌지 철저히 확인하는 것이 중요합니다.

김성범님의 프로필 이미지
김성범

작성한 질문수

질문하기