본문 바로가기

SMALL

C++/문제 해결

(2)
C++ LoadLibrary Null 반환 문제 포스팅 계기 이번 글은 내가 정말 고생해서 해결한 LoadLibrary 관련 오류를 기록해 두고자 작성하게 되었다. 어느 날 평소처럼 LoadLibrary(_T("특정. dll"))을 호출했는데, 특정 PC에서만 NULL을 반환하는 문제가 발생했다. GetLastError()로 확인해 보니 193 (ERROR_BAD_EXE_FORMAT)이라는 낯선 값이 나왔고, 처음엔 단순히 비트 수 불일치 문제인가 했지만… 디버깅은 생각보다 훨씬 깊고 길었다. 혹시 이 글을 보고 계신 분도 비슷한 상황이라면, 제 경험이 힌트가 되기를 바란다. ( 이 글을 읽고 나처럼 많은 시간을 투자하지 않고 해결할 수 있기를 바란다.) LoadLibrary가 NULL을 반환하는 주요 케이스LoadLibrary()는 DLL을 로딩할 ..
프로그램 실행 중 - Stack overflow Dead( 0xC00000FD ) 발생 원인 프로그램을 실행 중에 가끔 아래와 같은 에러로 인해 프로그램이 Dead 되는 경우가 있다. 아래 케이스 같은 경우에 문제가 발생하게 된 원인은 Stack Overflow 말 그대로 Stack 영역의 범위기 지정된 범위를 넘어섰기 때문이다. 즉 Stack 공간이 부족하게 되어서 발생한 문제이다. 해결 방법 이와 같은 문제가 실행 중에 발생하게 되는 원인은 우리가 프로그램을 실행 중에 호출되는 함수 스택 및 함수 내에서 할당되는 변수등이 Stack에 저장이 된다. 그때 어떤 함수를 실행하는 시점에 프로그램에서 할당한 Stack 영역보다 더 많은 메모리가 필요하게 되면서 발생하는 문제이다. 이와 같은 경우 문제를 해결할 수 있는 방법은 2가지이다. 불필요한 함수 호출 및 변수를 정리한다. 내가 구현..

LIST