본문 바로가기

구조체

error LNK2001 : 구조체의 주소를 외부 파일에서도 참조할 시 뜨는 에러. 왜 발생하는가 -> extern struct_wpt* m_ptWptAll; 이런식으로 정해두고나서 쓰질 정의된 것이 없기때문에 참조를 하지 못하여 에러가 뜨는 것. 구글링을 해서 검색을 하면 무슨 라이브러리를 추가해야한다는둥 하는데 그냥 코딩을 잘못 한 것인 경우일 확률이 더 높다. 왜 저게 잘못되었냐.. 면 struct_wpt* m_ptWptAll; 라는 문장을 코딩하지 않아서 이다. 위에 extern struct_wpt* m_ptWptAll; 라고 코딩한 내용은 선언이지 정의가 아니다. 다시 말해서 위의 extern 문은 프로그램안에 이런 변수가 있다고 알려주는 역할 밖에는 하지 않는다. 변수의 영역을 잡아주지도 않았는데 어떻게 참조할 수가 있겠는가? 그런고로 .cpp 파일중 하나에서 struct_w.. 더보기
어처구니 없는 실수 회사일 도중 어처구니 없는 실수가 있어서 적는 글. 혼자 제작중인 프로그램에서 파일의 내용을 구조체로 저장하고 구조체를 변환하여 다른 타입의 구조체로 구성된 파일로 저장하는 프로그램을 만들고 있다. 이름을 바꾸는데 TCHAR에서 BYTE로 바꿀때엔 함수를 여럿 사용한 반면 타 프로그램의 원문을 보니 BYTE에서 TCHAR로 바꾸는 것은 그냥 대입하면 되었기에 그대로 실행하는데 계속 다른값이 저장되는 것이다. 6시간동안 헤메다가 아무리 해도 값이 안바뀌어서 저장값들을 다 지워버리고 해도 그대로 박히길래 뭔가 이상한걸 눈치챘고.. 원인은 바로 file.Write의 매개변수값에 있었다. 해당 구조체와 구조체 타입을 다른 구조체로 집어넣었기 때문이었다. 아. 멘붕. 그걸 고치니 바로 정상적으로 작동하기 시작하였.. 더보기