요즘 받아서 쓰는 설비의
포인터가 사방으로 날아다니고 그런 포인터를 정리해서 모아서 정리한 포인터가 또 있는데
뭐가 어디 하위로 배치되어있는 지 일일히 알아보기도 귀찮아서
대강 필요한 코드가 들어있는 헤더를 include 해서 썼더니
저런 문제가 자꾸 발생했습니다.
일반 적으로 알려진 해결법
1.#paragma once
헤더 선언 시 제일 윗줄에 이 문구를 넣으면 된다고들 하는데 실제로 이렇게 간단하게 해결 되는 경우는
잘 없드라구요
한번만 인클루드 하게 해주는 경우로 해당 헤더 내에서만 제대로 작동하는 것 같습니다.
2.클래스 간 include 관계 수정
사실 이게 제일 많은 경우일 것입니다.
부모 클래스 쪽 헤더나 UI에서 받아온 헤더로 사용하는 하위 헤더끼리 또 서로 include하면서 참조하는 경우
양쪽이 서로 include하는 경우가 있는지 찾아봅시다.
이게 간단히 찾을 것 같지만 프로그램의 구조가 복잡해지면
또 잠시 일부만 고치면 되는데 일일히 다 살펴보기 귀찮을 때 적당히 include해서 쓰려다가 이런문제가
종종 발생하드라구요
그럼 빌드하면 갑자기 에러 막 90개씩 뜹니다. 이 포스트 제목같은 에러가요
그러면서 특정 클래스의 포인터가 갑자기 인식 안되고 그럽니다.(밑에 빨간줄)
(이미지 출처 티스토리 에움길 님:https://conservative-vector.tistory.com/entry/error-C2143-%EA%B5%AC%EB%AC%B8-%EC%98%A4%EB%A5%98-%EC%9D%B4%EA%B0%80-%EC%95%9E%EC%97%90-%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4)
'프로그래밍학습 > MFC' 카테고리의 다른 글
Run-Time check Failure #2 -stack around the variable'변수' was corrupted (0) | 2021.05.20 |
---|---|
MFC int to string 변환 방법 (0) | 2021.05.14 |
파일 매핑 예제 MMF(IPC) (1) | 2021.04.20 |
c2440: 'static_cast':'void(_thiscall CDlgtest::*)(WPARAM,LPARAM)'에서 LRESULT(_thiscall CWnd::*)변환할수 없습니다. (0) | 2021.04.16 |
[MFC]배열을 포인터로 전달하기- c++ (0) | 2021.03.20 |
댓글