336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
프로그램을 작성 하던중 클래스의 멤버 함수가 아닌 전역 함수를 사용 하려다 보니
자연스래 전역변수가 필요하게 되었다. 물론 전역변수의 사용은 좋은 현상은 아니지만...
Win32 API 에선 쉽게 전역변수를 사용 했는데 MFC 프로젝트에서 사용 하려다 보니
쉽지만은 않은것 같다. c/c++ 문법책 본지는 오래 되었고, MFC 구조는 깊숙히는 모르다 보니...
그래도 한번 시도해 봤다.
MFC wizard 가 생성한 프로젝트 에서는 stdafx.cpp 파일을 제외하고선
모두 stdafx.h 파일을 포함한다. (#include "stdafx.h")
따라서 이곳에 전역변수를 선언해 두면 프로젝트 내에 모든 cpp 파일에서 참조할 수 있다.
(변수 뿐만 아니라 함수, 상수등도 정의 가능)
1. 일반 변수의 전역변수 사용의 예
// StdAfx.h
extern int g_nData;
// StdAfx.cpp
int g_nData = 0;
프로젝트 내 cpp 파일에서 바로 g_nData 전역변수에 접근 가능
2. 구조체의 전역변수 사용의 예
- 헤더 파일(.h)에 구조체를 정의 한다.
- 변수의 선언과 초기화는 소스파일(.cpp)에 해준다.
- 다른 소스파일에서 위에 선언한 변수를 사용하기 위해선
헤더파일에 "extern" 키워드를 이용해서 선언해 주고
소스 파일에서 사용해 주면 된다.
// stdafx.h
// stdafx.cpp
// main.h
참고)
1. Compile 의 대상은 header 파일이 아니라 Source 파일이다.
(Compiler 수업을 좋은 성적에 클리어 했는데 벌써 긴가민가....)
2. Header 파일에 변수를 선언 할 수 없다.
선언하면 다음과 같은 에러 메시지가 출력된다.
error LNK2005: "int a" (?a@@3HA) already defined in ManagerClient.obj
출처 : http://six605.tistory.com/84
자연스래 전역변수가 필요하게 되었다. 물론 전역변수의 사용은 좋은 현상은 아니지만...
Win32 API 에선 쉽게 전역변수를 사용 했는데 MFC 프로젝트에서 사용 하려다 보니
쉽지만은 않은것 같다. c/c++ 문법책 본지는 오래 되었고, MFC 구조는 깊숙히는 모르다 보니...
그래도 한번 시도해 봤다.
MFC wizard 가 생성한 프로젝트 에서는 stdafx.cpp 파일을 제외하고선
모두 stdafx.h 파일을 포함한다. (#include "stdafx.h")
따라서 이곳에 전역변수를 선언해 두면 프로젝트 내에 모든 cpp 파일에서 참조할 수 있다.
(변수 뿐만 아니라 함수, 상수등도 정의 가능)
1. 일반 변수의 전역변수 사용의 예
// StdAfx.h
extern int g_nData;
// StdAfx.cpp
int g_nData = 0;
프로젝트 내 cpp 파일에서 바로 g_nData 전역변수에 접근 가능
2. 구조체의 전역변수 사용의 예
- 헤더 파일(.h)에 구조체를 정의 한다.
- 변수의 선언과 초기화는 소스파일(.cpp)에 해준다.
- 다른 소스파일에서 위에 선언한 변수를 사용하기 위해선
헤더파일에 "extern" 키워드를 이용해서 선언해 주고
소스 파일에서 사용해 주면 된다.
// stdafx.h
struct CLIENTDATA {
char arrUserName[32];
char arrComName[32];
int iAppNum;
};
// stdafx.cpp
#include "stdafx.h"
CLIENTDATA structClientData;
// main.h
extern CLIENTDATA structClientData; |
// main.cpp
structClientData.iAppNum = 10;
참고)
1. Compile 의 대상은 header 파일이 아니라 Source 파일이다.
(Compiler 수업을 좋은 성적에 클리어 했는데 벌써 긴가민가....)
2. Header 파일에 변수를 선언 할 수 없다.
선언하면 다음과 같은 에러 메시지가 출력된다.
error LNK2005: "int a" (?a@@3HA) already defined in ManagerClient.obj
출처 : http://six605.tistory.com/84
'# IT, Computer Science > MFC, API' 카테고리의 다른 글
[MFC] CFileDialog 파일을 읽거나 저장할때 창띄우기 (2) | 2011.09.11 |
---|---|
MFC 다이얼로그 배경색 지정, 투명하게 만들기 (0) | 2011.04.30 |
MFC 사용자 정의 메시지를 이용한 통신 (0) | 2011.04.10 |
[MFC] 인터넷 HTML 소스 다운로드 (0) | 2011.02.13 |
[MFC]Static Control 배경 투명화 및 글자 겹침 해결 방법 (0) | 2011.02.04 |