현재 SP1 베타가 나온 상태입니다.

개인적으로 제가 생각한 부분과 꽤 다른 부분이 많았습니다. 저는 Concurrency Runtime의 컨테이너나 알고리즘이 추가될지 알았는데 그렇지 않고 의외로 MFC에서 추가가 있었습니다.

 

추가되는 기능은

MFC-based GPU-accelerated graphics and animations

New AMD and Intel Instruction Set Support

Managed Incremental Build parity with Visual Studio 2008

Help Viewer

Addressing Customer Issues

 

 

그리고 VC++에 해당하는 버그 픽스 리스트는 아래와 같습니다.

 SSE2 instructions generated when /arch:SSE is specified

Missing destructor calls when optimization is enabled

Code generation bug in x64 C++ compiler (optimizer)

C++ compiler generates incorrect movups instructions iso movss

Optimizer bug (/Og) with the 64-bit 2010 Beta 2 compiler.

Visual Studio 2010 VC++ Concurrent Runtime libraries leak memory

concurrent_queue causes crash

Memory leaks reported when using simple parallel_for code

ftell returns negative value for UTF-8 files opened with textmode and ccs

vector::erase returns incompatible iterator in debug build

tr1:regex has different behavior between vs2008 and vs2010 on some regular expression

inserting in a std::vector of std::string causes memory leak

CRecordset/DoFieldExchange not working properly in Visual Studio 2010

 

 

 

MFC-based GPU-accelerated graphics and animations Win32 API Direct2D, DirectWrite Windows Animation Manager MFC용 라이브러리를 말합니다. 이중 Direct2D, DirectWrite Win7에서만 사용할 수 있습니다. Win7에서 GDI를 사용한다는 것은 크나큰 하드웨어 낭비입니다. 가능한 Direct2D, DirectWrite를 사용해야 합니다. Direct2D, DirectWrite는 기존의 GDI DirectX와 통합도 잘 됩니다. 만약 Win7에서 2D 게임을 만든다면 어렵게 DirectX를 사용할 필요 없이 Direct2D를 사용하면 됩니다.

 

 

몇 달 전에 VC++ MVP들의 메일링에서 Direct2D 같은 것들이 MFC에 안들어왔냐? MFC 버리기냐? 라고 따진 분이 계셨는데 드디어 들어왔네요. 정말 오랜만에 MFC에 공부할게 생겼네요^^

 

 

SP1에 대한 자세한 내용은 아래를 참고하세요

http://blogs.msdn.com/b/vcblog/archive/2010/12/09/vs2010-sp1-beta-what-s-on-it-for-c-developers.aspx

http://blogs.msdn.com/b/jasonz/archive/2010/12/20/visual-studio-2010-service-pack-1-beta-feedback.aspx

 

by 흥배 2010. 12. 22. 00:40
세미나에서 제가 살짝 정신줄을 놓아서(? -_-;;) 이 부분 설명이 미흡했는데

int* p = nullptr;
p = new int[200];

에서 p의 첫번째 위치에서 11번째만 보고 싶은 경우는
(p+10)



11번째에서 5개만 보고 싶은 경우는
(p+10), 5




by 흥배 2010. 12. 16. 21:57
  • 날자고도 2010.12.17 04:34 ADDR EDIT/DEL REPLY

    vs2008에서도 잘됩니다. ^^

  • +tigger+ 2010.12.17 10:45 신고 ADDR EDIT/DEL REPLY

    오 유용한 정보입니다 개인 블로그에 포스팅하고 싶은데 괜찮으신지요??

  • 윤지훈 2010.12.17 14:03 ADDR EDIT/DEL REPLY

    2005도 100개이상 잘 됩니다. 1000개 넘게도 해본적이 있어요. :)

  • 흥배 2010.12.17 16:15 신고 ADDR EDIT/DEL REPLY

    날자고도, 윤지훈 // 제가 아마 질문을 잘못 들은 것 같네요. 글에서 지워야겠네요 ^^;

  • 날자고도 2010.12.17 20:22 ADDR EDIT/DEL REPLY

    (p+10), 5
    이기능은 vs2010에서만 되는건가요?
    vs2008에서 안되는거 같네요.

    많은량의 데이터를 볼때 꼭 필요한 기능중의 하나였거든요.

    • 흥배 2010.12.18 01:02 신고 EDIT/DEL

      원래 이 기법은 MS 사이트에 올라온 것을 보고 제일 마지막의 위치+개수는 제가 생각해서 해보니 되어서 알게된 것이었는데 제가 VS2010에서만 해서 2008은 안 되는 줄 몰랐네요

  • dkanro 2011.01.06 17:50 ADDR EDIT/DEL REPLY

    오...저도 포스팅 좀 하겠습니다....

  • 이장석 2011.02.25 10:17 신고 ADDR EDIT/DEL REPLY

    우연히 들렸다가 좋은 자료 많아서 잘 보고 갑니다.
    글 잘 보았습니다.
    좋은 하루 되십시오.

VS2008까지는도구’ – ‘옵션메뉴를 통해서 VC++ 디렉토리를 설정하였습니다.

이렇게 설정한 정보는 모든 VC++ 프로젝트에 적용됩니다.

 

그러나 VS2010에서는 각 프로젝트 별로 VC++ 디렉토리를 설정합니다.


 

 

각 프로젝트 마다 독립적으로 설정을 할 수 있어서 편한 부분도 있지만 때로는 모든 프로젝트에 공통적으로 적용되어야 하는 경우는 매번 설정하는 것이 귀찮을 수 있습니다.

( 예로 DirectX boost 라이브러리 등 )

 

이런 경우속성 매니저를 통해서 VC++ 디렉토리를 설정하면 모든 프로젝트에 공통적으로 적용할 수 있습니다.

 

1. 일단 아무 프로젝트 하나를 열어 놓습니다.

2. 메뉴의보기’ -> ‘속성 관리자를 선택합니다.

 

 

3. 속성 관리자에서 ‘Microsoft.Cpp.Win32.user’를 더블 클릭해서 열어 놓습니다.


 

여기서 설정한 정보는 모든 프로젝트에 공통적으로 적용됩니다.

by 흥배 2010. 10. 28. 09:00
  • 정열 2010.10.28 13:07 ADDR EDIT/DEL REPLY

    첫 그림과 마지막 그림이 보이지 않습니다. 궁금합니다.
    사용환경: 윈도우7 32bit / 크롬 버전 7.0.517.41

  • ㅇㅇ 2010.10.28 16:28 ADDR EDIT/DEL REPLY

    저도 마찬가지 현상입니다.
    WinXP SP3 / IE8

  • 흥배 2010.10.28 23:03 신고 ADDR EDIT/DEL REPLY

    이유는 잘 모르겠지만 제가 로그인한 상태에서는 그림이 잘 나오고 로그아웃된 상태에서는 나오지 않았네요. 그래서 다시 그림을 넣었습니다. 로그인 안한 상태에서도 확인하니 잘 나오는 것을 확인했습니다.

VS.NET(VS2002)에서 MFC 프로젝트로 만들었던 프로그램을 VC++10 프로젝트로 변환하여 컴파일 했더니 에러가 발생하면서 아래의 경고가 나왔습니다.

C:\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\include\atlcore.h(35):#error This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.

 

에러 내용은 프로젝트에서 정의된 _WIN32_WINNT 버전이 0x403인데 atlcore.h 버전이 최소 0x0501 이상이 되어야 한다는 것입니다.

 

그래서 _WIN32_WINN 정의한 stdafx.h 파일을 열어보니

#define _WIN32_WINNT 0x0400

되어 있었더군요. 그래서 일단 이것을 최신이 좋다라는 생각에 아래와 같이 했습니다. ^^;;

#define _WIN32_WINNT 0x0600

 

그랬더니 이제는 아래와 같은 에러가 나오더군요. -_-;

c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afxcmn3.inl(29): error C2065: 'CCM_SETWINDOWTHEME' : 선언되지 않은 식별자입니다.

 

그래서 바로 구글링 들어갔습니다.

쉽게 저와 같은 에러가 나와서 질문을 올린 글을 찾았고 답변도 보았습니다.

문제 해결은 stdafx.h 파일에 정의된 버전의 숫자를 아래와 같이 하면 된다고 하더군요

// Modify the following defines if you have to target a platform prior to the ones specified below.
// Refer to MSDN for the latest info on corresponding values for different platforms.
#ifndef WINVER // Allow use of features specific to Windows 95 and Windows NT 4 or later.
#define WINVER 0x0501 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif

#ifndef _WIN32_WINNT // Allow use of features specific to Windows NT 4 or later.
#define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif

#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later.
#define _WIN32_WINDOWS 0x0501 // Change this to the appropriate value to target Windows Me or later.
#endif

#ifndef _WIN32_IE // Allow use of features specific to IE 4.0 or later.
#define _WIN32_IE 0x0500 // Change this to the appropriate value to target IE 5.0 or later.
#endif

 

이렇게 하니 문제 없이 빌드가 성공 되었습니다.

 

주위에서 VC++의 새로운 버전이 나와도 쉽게 사용하지 못하는 경우가 오래 전에 만들었던 프로젝트를 포팅 할 수 없어서 이전 버전을 어쩔 수 없이 사용한다는 이야기를 종종 듣습니다.

그러나 저는 운이 좋아서인지 2002버전부터 순차적으로 새 버전의 VC++을 사용할 수 있어서 VC++6에서 VS2002로 넘어갈 때만 빌드 문제를 겪었습니다.

그래서 이런 포팅에 대한 문제는 잘 알지 못합니다. 이번에는 예전에 만들었던 코드를 C++0x 코드로 바꾸고 싶어서 오래 전에 만들었던 프로젝트를 VC++ 10로 포팅하면서 정말 정말 오랜만에 이런 문제를 겪어 보게 되고 해결 방법을 포스팅 할 수 있었습니다.

 

혹시 앞으로 또 이런 경우가 발생하면 바로 바로 공유하도록 하겠습니다
by 흥배 2010. 10. 26. 09:00
  • kkommy 2010.10.26 15:14 신고 ADDR EDIT/DEL REPLY

    전 아직도 이런 문제때문에 VS6을 못 벗어나고 있습니다.. ㅠㅠ

    • 흥배 2010.10.27 01:00 신고 EDIT/DEL

      다시 한번 시도해보세요. 이미 VS6에서 다음버전으로 넘어간 경우가 많아서 구글링 하면 대부분의 문제는 해결 가능합니다. 예전에 6에서 7을 넘을 갈 때는 사례도 별로 없고 지금처럼 구글링이 활성화 되어 있지 않아서 한국내의 커뮤니티에서 답을 구하지 못하면 풀지 못했는데 지금은 구글링의 덕택으로 우리가 겪는 대부분의 문제는 누군가 이미 경험하였고 해결책도 제시하고 있습니다.

VC++ 10 C++0x나 병렬 프로그래밍 라이브러리 이외에도 툴적인 측면에서도 여러 좋은 기능들이 추가 되었습니다. 알고 있으면 작업할 때 편리한데 시간이 부족하여 제가 아직 자세하게 찾아보지 못해서 소개하지 못한 것이 많이 아쉽습니다. 그래서 짥은 것이라도 틈틈이 시간나면 소개하려고 합니다.

 

VC++ 10에서는 디버깅 모드에서도 역어셈블리 코드를 볼 수 있습니다.

 

메뉴에서 “Debug” -> “Windows” -> “Disassembly”를 선택합니다.

 

아래와 같이 역어셈블리 코드 창이 나타납니다.

 

 

그러나 위 화면을 보면 코드 바이트는 표시되지 않고 있습니다.

코드 바이트를 보고 싶다면 위 화면 왼쪽 상단의 “Viewing Option”을 클릭합니다.

 

 

위와 같이 옵션을 선택할 수 있습니다. 이 중 “Show code bytes”를 선택합니다.

그러면 아래와 같이 코드 바이트가 표시됩니다.

 

 

참고

http://d.hatena.ne.jp/kkamegawa/20100130/p1

 

by 흥배 2010. 10. 11. 09:00


KGC10 - Visual C++10과 디버깅
View more presentations from jacking.



오늘 101호실에서 5시에 강연을 했습니다. 그런데 강연을 매끄럽게 하지 못해서 참석하신 분들에게 죄송스럽네요. 대부분 Demo 위주로 할 예정이라고 너무 쉽게 생각하고 연습을 제대로 하지 않아서 시간 관리도 제대로 못했고 말 연결도 매끄럽지 못했습니다. 반성하겠습니다.

 

오늘 제대로 못한 부분은 너무 뒷북 치는 것 같지만 블로그를 통해서 전달하도록 하겠습니다. 다음에는 연습 많이 하겠습니다. 그리고 주제도 좀 더 흥미로운 것으로 하겠습니다. 이번 강연은 내용이 많이 평이했던 것 같네요. 오히려 회사에서 사용하고 있는 유닛테스트나 자동테스트, 덤프 파일 관리 등을 이야기 하는 것이 더 좋았지 않았을까 생각합니다.

 

앞서 이야기 했듯이 오늘 다 못한 이야기는 블로그를 통해서 꼭 전달하겠습니다.


오늘 강연에서 사용했던 Demo 소스 파일도 첨부합니다. 참고로 Demo_08이 google-breakpad를 사용한 프로젝트인데 Demo_08를 빌드하기 위해서는 google-breakpad를 설치후 Demo_08의 솔루션 속성 정보에서 헤더파일과 라이브러리 설정을 수정해야합니다.



[ PT 문서의 오타 ]

문서는 컴파일이나 디버깅 할 수 없어서 버그를 잡지 못했습니다. -_-;;

1. strcpy같은 보안성이 약한 함수를 매크로로 일괄적으로 보안성 높은 함수로 바꾸어주는 매크로의 이름에 오타가 있습니다.

_CRT_SECURE_CPP_OVERLOAD_STANDAD_NAMES    (X)

_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES  (0)

그리고 이 매크로는 동적버퍼의 경우는 위험할 수가 있다고 하네요. 관련 MSDN 글이 한글은 없으니 제가 조만간 따로 번역해서 올리겠습니다.

by 흥배 2010. 9. 15. 23:26
  • audience 2010.09.16 04:16 ADDR EDIT/DEL REPLY

    강연 들었던 학생인데요.

    기본적인 기능이거나 현업에서 많이 쓰는 라이브러리나 툴일지라도
    학생이다 보니 학교에서는 디버깅을 누가 알려주지 않더라구요.

    그래서 어쩌다보니 개발툴에서 디버깅하는 것 보다
    windbg같은 디버깅툴에서 디버깅하는 것을 먼저 알게되는 바람에
    개발툴에서의 디버깅을 알고 싶어서 갔었습니다.

    그래서 가장 기본적인 F5, F9, F11.. 등 도 알려주고 넘어가시고
    데모 위주로 알려주셔서 좋았습니다.

    아쉬웠던 점은 시간관계상 그리고 데모 시연이 원활하지 못했던 부분 때문에
    후반에는 데모 시연 없이 대강대강 넘어가실 때
    상당히 유용해 보이는 기능이나 라이브러리 같은 것들이 보였는데
    그것을 제대로 볼 수 없어서 아쉬웠습니다.

    꼭 이 블로그나 vsts2010.net 에서 자세히 다루어 주셨으면 좋겠습니다.

    마지막으로 강연과는 관련 없는 건데
    Visual C++ 10과 C++0x 이 책자
    pdf 파일로 보았는데
    KGC에 있던 MS부스에서 나눠주시더군요.
    KGC에서 받아온 기념품 중에 제일 좋네요. ㅋㅋ

    • 흥배 2010.09.16 18:54 신고 EDIT/DEL

      미숙한 강연이었는데 좋게 봐주셔서 고맙습니다. 뒷 부분에 날림으로 넘어간 부분은 블로그를 통해서 꼭 보강하겠습니다.!!

  • 아햐햐 2010.09.16 15:18 ADDR EDIT/DEL REPLY

    감사합니다. ^^ 잘보겠습니다.

    _CRT_SECURE_CPP_OVERLOAD_STANDAD_NAMES 에서

    STANDAD 오타인가요?

  • 2010.09.16 15:34 ADDR EDIT/DEL REPLY

    비밀댓글입니다

4월15일에 있었던 세미나에서 강연했던 문서입니다.


Vs2010을 활용한 cpp_병렬_프로그래밍
View more presentations from jacking.

by 흥배 2010. 8. 22. 15:27

영문판 VS 2010(Visual C++ 10)은 나왔고, 한글판은 61일에 나온다고 합니다.

 

Visual C++ 10을 도입하려고 하시는 분들은 전체적으로 어떤 변화가 있는지 알고 싶을 것이고, 특히 구매를 위해 회사 윗 분들에게 보고를 해야 되는 분들은 관련된 문서를 만들어야 하는 분들도 있으리라 생각합니다.

 

VC++ 10 도입이나 내부 스터디에 사용하도록 간단하게 VC++ 10의 달라진 점을 정리하여 문서를 만들어 보았습니다.

 

이 문서는 러프하게 만들어진 문서이니 참고로 사용하여 더 좋은 문서를 만드시기를 바랍니다. 특히 윗 분들에게 보고 하기 위해서 PT문서를 만들 때는 이 문서에 왜 필요한지에 대해서 좀 더 강력한 메시지를 넣기를 바랍니다.^^







by 흥배 2010. 5. 4. 08:30

C++0x 관련 책 "Visual C++ 10 C++0x"가 오늘 한국 MSDN 사이트에 올라왔습니다.

e-book으로 보기를 원하는 분이나 책을 얻지 못한 분들은 다운로드 해서 보세요

 

MSDN : http://msdn.microsoft.com/ko-kr/default.aspx

 


Visual Studio의 시작 페이지에도 다운로드 링크가 표시됩니다.

 

 

그리고 책에 오타가 있습니다.

48페이지 decltype 설명에서 오타가 있습니다.




by 흥배 2010. 4. 20. 13:20
  • 김요한 2010.04.21 13:47 ADDR EDIT/DEL REPLY

    백서의 16페이지 오류
    <코드 3-2>는 MAX_LEVEL의 값이 100을 넘으면 컴파일 할 때 에러를 출력합니다.
    -> <코드 3-2>는 MAX_LEVEL의 값이 100이하이면 컴파일 할 때 에러를 출력합니다.

4 15일에 하는 “C++ 개발자/게임개발자를 위한 VS2010 세미나에서 “Visual Studio 2010을 활용한 C++ 병렬 프로그래밍세션 강연을 합니다.

 

 

C++을 활용한 병렬 프로그래밍이라는 것은 VC++ 10의 새로운 기능 중 하나인 Concurrency Runtime을 활용한 병렬 프로그래밍입니다.

 

이전에 온라인 강연에서 “Concurrency Runtime”에 대해서 강연을 한 적은 있지만 이렇게 규모가 큰 곳에서 오프라인으로 하는 것은 처음입니다. “Concurrency Runtime”에 대한 공개적인 오프라인 강연은 처음이지만 이전에 온라인으로 한 적이 있고 VSTS2010 팀블로그에 제가 적은 글도 있어서 이날에는 이것만 하지 않고 병렬 프로그래밍과 관련된 다른 이야기도 합니다.

 

 

현재 만든 PT 문서의 목차는 아래와 같습니다.

 

1. Multi-Core 시대

2. 어려운 병렬 프로그래밍

3. 진화

4. Concurrency Runtime

5. 병렬 패턴 라이브러리 ( PPL )

 

 

페이지 수는 70페이지 정도 되지만 저는 한 페이지에 내용을 작게 넣고 그림도 꽤 있어서 실질적으로 그렇게 많은 양은 아닙니다.^^

 

목차의 내용에 대해서 간단하게 설명하자면

 

1. Multi-Core 시대

현재와 앞으로의 CPU 아키텍처에 대해서 이야기합니다. AMD Intel이 생각하는 CPU 아키텍처를 설명합니다.

 

2. 어려운 병렬 프로그래밍

병렬 프로그래밍 말은 쉽지만 실상 쉽지 않습니다. CPU 벤더들이 말하는 이상과 달리 멀티 코어를 제대로 활용하기 어려운 현실에 대한 이야기입니다.

 

3. 진화

Windows XP Visual Stuido.NET이 나온지 8,9년이 되었습니다. 시간이 흐른 만큼 OS나 개발툴에 변화가 생겼습니다. 특히 Windows 7이 나오면서 OS에 병렬 프로그래밍과 관련된 어떤 변화가 있었는지 이야기 합니다.

 

4. Concurrency Runtime

Concurrency Runtime의 전체 구조에 대해서 설명합니다.

 

5. 병렬 패턴 라이브러리 ( PPL )

Concurrency Runtime의 일부인 PPL에 대해서 어떤 것인지, 어떻게 사용하는지 설명합니다.

 

 

 

세미나 관계자 이야기로는 현재 세미나 등록한 인원이 많다고 합니다. 제 생각에 새로운 VS 툴이나왔고 C++ 관련 세미나는 워낙 없기도 해서 세미나에 오시는 분들이 많지 않을까 생각합니다. 사람이 많이 오니 가급적 빨리 와서 좋은 자리를 잡아서 편안하게 강연을 듣기를 바랍니다.^^

 

 

 

https://msevents.microsoft.com/cui/EventDetail.aspx?culture=ko-KR&EventID=1032447922&IO=jgXfPOVLFvgCqIHn3by1Uw==




ps : 확실한 것은 아니지만 아마 15일에 오시면 "First Look C++"이라는 작은 책자를 받을 수도 있을겁니다.

이 책자는 제가 VSTS2010 팀블로그에 올린 C++0x 관련 글을 정리한 책자입니다. 블로그에 올린 글을

기본으로 잡았지만 RValue Reference와 lambda는 다시 적었습니다.

by 흥배 2010. 4. 14. 00:30
  • leafbird 2010.04.14 00:43 신고 ADDR EDIT/DEL REPLY

    저도 지금 60페이지가 다 되어가는 중... @.@...
    멋진 세션 기대하겠습니다 ^^*

    • 흥배 2010.04.14 00:49 신고 EDIT/DEL

      이 시간까지 고생많구나^^. 페이지 수가 많은만큼 시간 관리도 잘해야겠어. 특히 내 다음이 너구나. 시간 오바 절대 안할께^^

  • 오즈라엘 2010.04.14 14:08 ADDR EDIT/DEL REPLY

    비록 근무하느라 듣지는 않지만 화이팅임다!! ㅎㅎ

  • 붕어 2012.04.24 11:02 ADDR EDIT/DEL REPLY

    안녕하세요 병렬프로그래밍을 공부해볼려고 하는데
    이때 강의 해주신 PPT가 공유되어 있거나 볼 수 있는 곳이 있을까요?
    (__)

    • 흥배 2012.04.24 11:57 신고 EDIT/DEL

      http://www.slideshare.net/jacking/visual-c10-5028182 에 있습니다^^

| 1 2 3 |