[SDL2] IMG_Load로 png 파일 로드시 문자열에 잘못된 문자가 있습니다
회사 프로젝트를 SDL2를 사용해 포팅작업을 4월 10일부터 시작했으니 한달이 조금 지났습니다. 순조롭게 진행중이었는데 다른 일정으로 잠시 보류 되었다가 다시 진행하려고 보니 SDL2_image lib에서 png 파일을 읽어오지 못하는 이슈가 발생했습니다. SDL_Surface* surface = IMG_Load(strImage.c_str()); const char* error = IMG_GetError(); + strImage "intro.png" + error 0x6c839080 <문자열에 잘못된 문자가 있습니다.> const char * IMG_GetError()로 체크해보니 위와 같이 '문자열에 잘못된 문자가 있습니다' 라고는 하지만 근 한달동안 별 문제 없다가 수정도 되지 않은 코드에서 발생한 에러라 조금 당황스럽더군요. 저만 진행중인 일정이라 혹시나 해서 빌드한 바이너리를 팀원에게 전달 후 테스트해보니 잘 됩니다. 저만 안되더라는... 그래서 최근에 윈도우10 크리에이터 업데이트를 설치했었는데 이것과 호환성에 문제가 있나 싶어 이전 버전으로 복구를 해봤지만 이슈는 해결되지 않았습니다. 브런치로 작업중인데 trunk에서 머지해온게 뭔가 잘 못되서 메모리를 건드나? 이런 쪽으로도 접근해 봤지만 아니었습니다. 그러던 중 비주얼 스튜디오 출력창에 아래와 같은 것을 발견했습니다. libpng16-16.dll'을(를) 로드했습니다. libpng16-16.dll'을(를) 언로드했습니다. 이상하게 libpng16-16.dll이 로드된 후 바로 언로드를 하더군요. 확인해보니 libpng16-16.dll이 내부적으로 zlib1.dll과 의존성이 있었습니다. SDL2_image를 압축해제하면 나오는 파일들인데 여기서 libpng16-16.dll, SDL2_image.dll만 쭉 사용하면서 포팅을 잘 해왔던 부분인데 한달이 지난 시점에 갑짜기 dll이 없다...