본문 바로가기

MFC/Error

"There is no source code available for the current location" 비쥬얼 스튜디오에서 디버깅을 하는 도중"There is no source code available for the current location"이란 메세지가 나오면서 더 이상 그 파일의 디버깅이 힘들어 졌다. 이럴경우 Solution=>properties=>comman Properties=>Debug Source Files를 보면Do not look for these source files: 라는 항목에서 그 파일의 경로가 지정 되어져 있을것이다.이걸 제거 해주니 올바르게 디버깅이 되었다. 더보기
error C2146: syntax error : missing ';' before identifier 'PVOID64' 위 에러의 원인은... DirectX 관련 라이브러리가 배포하는 basetsd.h 라는 파일 때문이다. 어떤 이유인지는 모르겠으나... DirectX 관련 라이브러리들 중 그들이 배포하는 basetsd.h 파일에는 POINTER_64 라는 키워드에 대한 define 이 빠져있기 때문이다. 에러가 발생하는 과정은....windows.h 에서 winnt.h 를 include 하고, winnt.h 가 PVOID64 를 정의하기 위해 typedef void * POINTER_64 PVOID64; 위와같이 typedef 를 하는데 POINTER_64 키워드 정의를 찾기위해 basetsd.h 파일을 include 한다.그런데, VisualStudio 등의 설치된 SDK의 include 에 있는 basetsd.h 에.. 더보기
Detected memory leaks! Detected memory leaks! 발생시 예를 들어Detected memory leaks! Dumping objects -> {264481} normal block at 0x03F4EB08, 580 bytes long. Data: 24 00 00 00 00 00 00 00 60 00 00 00 00 00 00 00 {264480} normal block at 0x03F4E7B0, 792 bytes long. Data: 09 00 0A 00 17 00 0E 00 13 00 0D 00 12 00 0F 00 이런 경우 프로그램 시작부분이나 함수가 메모리 릭이 발생 할 가능성이 있는 함수의 시작부분에AfxSetAllocStop(264481); 씩으로 호출후 디버깅을 시작하면 그 변수가 사용되는 곳에서 디.. 더보기
error C2236: unexpected 'class' 이 에러는 클래스 선언끝에 ';'을 붙히지 않아서 일어나는 에러일 가능성이 높으나 의외로 찾기 힘들다. 에러가나는 곳에서 ';'을 안붙힌것이 아니고 다른곳에서 ';'을 안붙혔을때가 있기때문이다. 이 에러가 떳을 경우는 다른 클래스 선언 끝에 ';'을 붙혔는지 확인하자 더보기