티스토리 뷰
보통 mfc는 선언부 파일(*.h)과 구현부 파일(*.cpp)을 나누어 놓는다.
선언부 class에서 static 멤버 변수를 선언하고 구현부에서 사용하려고 하면 Link시점에 에러가 난다.
예를 들어 다음과 같은 소스가 있다고 해보자
StaticSample.h (선언부)
//StaticSample.h class CStaticSample { private: static int m_nNumofClass; public: CStaticSample(void); ~CStaticSample(void); static int GetNumofClass(void); };
StaticSample.cpp (구현부)
//StaticSample.cpp #include "StaticSample.h" CStaticSample::CStaticSample(void) { m_nNumofClass++; } CStaticSample::~CStaticSample(void) { } int CStaticSample::GetNumofClass(void) { return m_nNumofClass; }
이 소스는 컴파일 하면 에러가 날 것이다.
error LNK2001: unresolved external symbol "private: static int CStaticSample::m_nNumofClass" (?m_nNumofClass@CStaticSample@@0HA)
라는 에러가 난다.
이를 해결 하기 위해선 구현부에 static 변수에 대한 선언이 한 번 더 이루어 져야 한다.
위의 경우는
int CStaticSample::m_nNumofClass;
와 같이 이루어 진다.
바뀐 구현부 소스를 보면
//StaticSample.cpp #include "StaticSample.h" int CStaticSample::m_nNumofClass; CStaticSample::CStaticSample(void) { m_nNumofClass++; } CStaticSample::~CStaticSample(void) { } int CStaticSample::GetNumofClass(void) { return m_nNumofClass; }
이처럼 해주면 된다.
'Development > Windows' 카테고리의 다른 글
[MFC] Executable For Debug Session (2) | 2010.12.03 |
---|---|
[MFC] SendMessage와 PostMessage (0) | 2010.11.29 |
[Visual Studio] DLL을 만들기. DLL 사용하기. (0) | 2010.11.26 |
버튼을 생성했더니 다이얼로그 프로그램 종료가 되지 않았다. (0) | 2010.10.22 |
[UAC] Windows Vista의 사용자 계정 컨트롤(User Account Control : UAC) – 누구를 위한 기능인가? 그리고 왜? (0) | 2010.10.11 |
MFC에서 Draw 사용시 주의할 점들 (0) | 2010.08.24 |
MFC 다이얼로그 상속 받기 (0) | 2010.08.18 |
MFC Dialog Base 프로그램에서 엔터치면 꺼지는 문제 해결 (1) | 2010.07.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Python
- Troubleshooting
- winapi
- Cloud
- C++
- 리눅스
- it
- 안드로이드
- API
- source
- AWS
- C
- NDK
- linux
- jni강좌
- jni
- kering
- android
- Visual C++
- Quiz
- 프로그래밍
- gcc
- MFC
- java
- database
- driver
- algorithm
- db
- 드라이버
- 음악
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함