[초보질문]Visual C++ 공부 하고 있는데 초보적인 질문 하나 드립니다.

kimyh의 이미지

이제 시작한지 2주 정도 되었는데 이런 초보적인거 물어봐도 되는지 망설이다
질문 올립니다.
어디에 딱히 물어볼데도 없고 해서요.

Visual C++ 6.0 으로 공부하고 있는데 예제문제 코딩해 놓은걸보면
코딩 내용중 아래와 같이 어떤부분은 회색으로 표시되고 어떤부분은 흑색으로 표시되는데
어떤경우에 이런식으로 자동으로 표시 되나요?

코딩의 일부 예;
protected:
	HICON m_hIcon;
 
	// Generated message map functions
	//{{AFX_MSG(CChatServerDlg)
	virtual BOOL OnInitDialog(); //여기부터 회색으로 표시해서
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnClose();
	afx_msg void OnButton2();
	afx_msg void OnButtonSend();  //여기까지 회색으로 표시
	//}}AFX_MSG
	afx_msg LPARAM OnAccept(UINT wParam, LPARAM lParam); //흑색으로 표시
	afx_msg LPARAM OnReceive(UINT wParam, LPARAM lParam); // 흑색으로 표시
	DECLARE_MESSAGE_MAP()
};

그리고 주석처리된
//{{AFX_MSG(CChatServerDlg) 이부분과
//}}AFX_MSG 이부분을 삭제 하면 않된다고
하는거 같던데 그건 왜 그런가요?
주석처리된건 지워도 동작하는데는 아무런 문제가 없지 않은것 아닌가요?

그리고
//{{AFX_MSG(CChatServerDlg) 이부분과
//}}AFX_MSG 이부분은 무슨 의미를 가지고 있길레 그런건가요?

이곳은 고급프로그래머들만 들어 오는곳으로 알고 있는데 이런 초보적인걸로 질문 드려 죄송합니다.

익명사용자의 이미지

그 주석부분은 일종의 marker로
클래스위자드가 그 영역 안에 적절하게 코드를 삽입/삭제/변경하기 때문입니다.
회색 표시는 클래스위자드가 간섭하는 부분이라는 뜻이라고 보시면 됩니다.

bootmeta의 이미지

이 사이트의 목적상 여기는 windows 프로그래밍이 아닌 유닉스나 리눅스 관련 사이트입니다.
그렇다고 아주 프로그래밍에 도통한 사람들만 오는 곳도 아닙니다.
visual c++ 관련 질문이라면 데브피아 같은 사이트에 질문하시면 친절한 답변들이 많이 올라올 것 같군요.
그래도 잘 모르는 제 지식으로 답변을 드리자면 //{{ //}}영역은 주석임에도 불구하고 visual c++에서 gui 관련해서 자동으로 만들어 내는 코드들이 들어가는 영역입니다.
따라서 잘못 수정하게 되면 대화상자 같은 콘트롤들이 제대로 동작하지 않을 수 있기때문에 되도록 건드리지 않도록 하는게 좋습니다.

c0d3h4ck의 이미지

저는 관리자는 아니지만 유닉스 리눅스 관련 사이트라고 단정 짓는건 좀 무리가 있다고 봅니다.
예전엔 그랬었는지 모르지만 지금은 FOSS 관련 사이트가 아니였던가요?

제가 틀렸다면 말씀주시죠 ^^

Necromancer의 이미지

F/OSS질문이라도 VB나 MFC같이 m$툴만으로, m$ 플랫폼에서만 할 수 있는 프로그래밍에 대한 질문은
이곳에 올리기에는 좀 거시기하죠. 게시판 분위기에도 안맞고요. (CView 클래스가 뭐에요~ 등등)

그리고 위에 이 글 쓰신분은 MFC 공부하시는거 같은데,
C++ 기초가 안되어 있다면 MFC 하기 전에 Hello World를 텍스트로 찍는 C/C++부터
시작해서 C++의 프로그래밍 스타일이나, 개념 등에 대한 이해를 먼저 하는 것이 필요합니다.

MFC는 복잡한 코드가 들어가는 곳을 라이브러리화 놓고 사용자가
일부 메소드만 작성하면 돌아가게 해놨기 때문에 C++ 개념을 공부하는 데는
매우 안좋습니다. 한술 더떠서 클래스위저드갖고만 놀다보면 나중에는 클래스위저드
못쓰는 상황에서 작업해야 할 때 난감해집니다.
클래스위저드 못쓰는 상황은 현업에 가보면 "매우 자주" 있습니다.

Written By the Black Knight of Destruction

익명사용자의 이미지

음.. 상관없지 않을까요 ?
리눅스야 gcc 나 gdb, gtk+ 등등을 사용하지만 윈도우에서 위와 같은 툴을 사용하기에는 불편한 감이 없지 않아 있습니다. 성능상의 문제도 있구요.
비록, M$ 플랫폼 전용이긴 하지만 프로그래밍에 대한 질문은 상관없지 않을까 합니다.
Open Source 프로젝트도 M$ 플랫폼 기반으로 진행되는 것이 상당수 됩니다.
특정 플랫폼이라고 해서 제한을 두는 것은 안 좋다고 생각됩니다.
KLDP 라고 해서 꼭 리눅스에 단정 지을 필요는 없다는 것이죠.
여기에 자주 활동하시는 분들중에도 리눅스에서 플밍하시는 분도 있고, 윈도에서 하시는 분도 있고..
멀티 플랫폼으로 작업하시는 분들도 있으니...

숙제용 프로그래밍 질문만 아니라면 굳이 제한을 둘 필요가 있을까요 ?

Necromancer의 이미지

게시판을 둘러보십시오.
리눅스에만 단정 지은 것은 아닙니다. 솔라리스, AIX, BSD 류에 대한 질문도 매우 많이 올라옵니다.
윈도우 플랫폼과 관련된 질문도 물론 올라옵니다. 운영체제와는 상관없는 알고리즘, 하드웨어 질문도 올라오고요.

다만 "오로지" 윈도우 플랫폼에서만 할 수 있는 프로그래밍과 관련된 질문은 소위 "왕따"입니다.

사이트 성격상 유닉스류 운영체제를 주관심사로 하는 사람들이 모이는 곳이기 때문입니다.

님이 만일 "주몽" "연개소문" 같은 드라마 이야기하는 사람들 속에 들어가서 "007시리즈가 어떻네"
얘기하는거랑 똑같습니다. 그럼 옆에 사람들이 님을 어떻게 생각할지 생각해보시면 되겠습니다.

Written By the Black Knight of Destruction

익명사용자의 이미지

이제는 사이트 성격이 좀 바뀌지 않았나요 ?
위에 마스코트에도 F/OSS, Geek, IT... 등으로 되어있군요.
"왕따" 라고 표현하셨는데 왕따는 주위의 사람들이 하는 행동입니다.
사이트의 성격도 조금씩 바뀌어 가는데 굳이 왕따를 시킬 필요가 있을까요 ?
위나 아래에 댓글 다신 분들은 왕따를 구해주기 위한 천사인가보군요...

질문하신 분이 설마 데브피아랑 착각해서 질문을 올리셨다고는 생각이 들지 않습니다.
질문하신 분의 아뒤로 검색을 해보면 수많은 글들을 볼 수 있습니다.
다만, KLDP가 편하고 데브피아보다 좀 더 자세하게 알려주기 때문에 KLDP 에 질문을 올리신게 아닐까요 ?

너무 민감하게 반응하시는 것 같군요.

질문하신 분이 "왕따" 당할 정도의 행동은 했다고 생각하지 않습니다.

Necromancer의 이미지

제가 심하게 반응 했네요

Written By the Black Knight of Destruction

Written By the Black Knight of Destruction

Fe.head의 이미지

여긴 프로그래밍 QnA기 땜시 프로그래밍에 관련 질문은 괜찮은걸로 아는데요.(아마 기존 글에 나와 있을겁니다. 읽은 기억이 나는군요.)

VC++질문이 답글이 적은지는 모르겠지만..
여기 회원분들이 VC++을 잘 아는 분이 많지 않아서 답글이 적은거 아닐까요?
-----------------------
과거를 알고 싶거든 오늘의 네 모습을 보아라. 그것이 과거의 너니라.
그리고 내일을 알고 싶으냐?
그러면 오늘의 너를 보아라. 그것이 바로 미래의 너니라.

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"

IsExist의 이미지

보통 회색으로 표현되는 코드들은 VS 6.0이 자동으로 생성하는 코드 입니다.
MFC에 능통하지 않았다면 수정은 금물입니다.

지금 상황에서는 MFC 코드라고 이해하는 정도면 충분할듯 합니다.
좀더 진도를 나가고 반복학습을 하면 나중에 자유자재로 수정할 수 있는
시기가 올겁니다.

VS 6.0이 참 애매한 도구라 완전한 RAD 기반의 도구도 아니고 그렇다고
저수준의 C++ 표준을 화벽하게 지원하는것도 아니고 애매한 편리성을
갖는 도구입니다.

VS 6.0 에 익숙하고 그 다음으로 MFC를 거치는 코스로 학습하세요.
VS 6.0을 상세한 수준으로 다룬 책이라면 MFC에 대한 상세언급을 한,두번정도는
다루고 있을겁니다. 그리고 예제는 직접 모든 코드를 타입핑하지 말고
이런저런 절차에 따라 이렇게 하라고 할겁니다. 거기에 맞춰서 하면 되구요.
첨부된 프로젝트 소스를 복사해서 사용하세요.
---------
간디가 말한 우리를 파괴시키는 7가지 요소

첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스

이익추구를 위해서라면..

다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치

---------
간디가 말한 우리를 파괴시키는 7가지 요소

첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스

이익추구를 위해서라면..

다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치

magingax의 이미지

MFC 군요..똥물에 발담그신거 축하드립니다..
다만든 프로그램 메세지연결 부분 꼬여서 몇번 날리시면 깨닫는 점이 있으실껍니다..
저는 그냥 win32 만 써서 짜도 충분합니다..

LISP 사용자모임
http://cafe.naver.com/lisper
방송기술 개발업체
http://playhouseinc.co.kr

kasi의 이미지

인터넷 돌아다니다 보면 MFC가 구리다는 소리를 참 많이 듣습니다.

MFC의 어떤점이 그렇게 구린지 궁금합니다.^^;

Necromancer의 이미지

MFC의 구린점은
간단히 얘기하자만 M$ 종속적인 개발라이브러리입니다.

1. 오직 M$의 툴로만 작업해야 하고
2. 오직 M$의 개발방식만을 따라야 하며
3. 오직 M$의 운영체제에서만 작동하는
4. M$가 필요없다고 버리면 그 지식들은 다 쓰레기가 되어버린다는것
(VB가 그 선례를 남겼습니다. VB6.0/VB.net)

다른걸로 끼어들 여지가 전혀 없습니다 -_-;
따라서 이런걸 배우다 보면 M$에 완전히 구속되는 상황이 됩니다. -_-;

이곳에서 MFC관련 질문에 대한 암묵적인 금기가 있는 것도 MFC의 이런 점 때문입니다.
이곳은 M$에 구속되기를 싫어하는 사람들이 많이 드나드는 곳이니까요.

Written By the Black Knight of Destruction

Written By the Black Knight of Destruction

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.