현재 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
세미나에서 제가 살짝 정신줄을 놓아서(? -_-;;) 이 부분 설명이 미흡했는데

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

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



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




저작자 표시
신고
by 흥배 2010.12.16 21:57

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

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

 

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


 

 

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

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

 

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

 

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

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

 

 

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


 

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

저작자 표시
신고
by 흥배 2010.10.28 09:00

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

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.09.15 23:26
4월15일에 있었던 세미나에서 강연했던 문서입니다.


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

저작자 표시
신고
by 흥배 2010.08.22 15:27

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

 

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

 

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

 

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







저작자 표시
신고
by 흥배 2010.05.04 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.04.20 13:20

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.04.14 00:30
| 1 2 3 |

티스토리 툴바