블로그 이미지
일상을 살아가면서 겪게되는 얘기들, IT에 관한 얕은 지식을 일상의 얘기와 함께 풀어갑니다.
하트바다

공지사항

최근에 올라온 글

최근에 달린 댓글

글 보관함

calendar

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 31

CMFCButton memory leak 버그

2012. 5. 30. 09:21 | Posted by 하트바다

모르긴 몰라도 MS에 있는 사람들이 나보다는 훨씬 똑똑할꺼라 생각하여 나는 MS의 버그를 만날 수 있으리란 생각을 안했다.

그런데 정말 쌩뚱맞은 곳에서 발견!!!

이번에 급하게 프로젝트 컴파일 할 일이 있어서 버튼을 VS2010 에 올라와 있는 CMFCButton 을 사용했다. 나름 세밀한 기능이 CButton을 Subclassing 하는 거 보다는 믿음이 갔기 때문이겠지?

그런데 이놈을 사용해서 컴파일 하니 아래의 memory leak이 발생!!!


Detected memory leaks!

Dumping objects ->

f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\plex.cpp(29) : {6669} normal block at 0x04512CD8, 164 bytes long.

 Data: <              zx> 00 00 00 00 00 00 00 00 C5 9D 1C 81 F8 B8 7A 78 

f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\map_sp.cpp(83) : {6668} normal block at 0x04512B38, 68 bytes long.

 Data: <     ,Q         > 00 00 00 00 DC 2C 51 04 00 00 00 00 00 00 00 00 

f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\afxtooltipmanager.cpp(70) : {6667} client block at 0x04512C08, subtype c0, 144 bytes long.

a CToolTipCtrl object at $04512C08, 144 bytes long


이런 글이 CMFCButton 하나 마다 세문장씩 쭉쭉 써진다~!!!!  처음에는 내가 문제가 있겠거니 했으나 MS의 예제는 잘 되고 나만 안되는 상황!!!  왜 나만 갖구 그래!!!

한참을 뒤진 후에 알게 되었다. 그것도 MFC developer 아저씨의 공식 블로그 에서...

In every release we need to balance our investment across the various areas of the product. However, we still believe that MFC is the most fully-featured library for building native desktop applications. We are fully committed to supporting and maintaining MFC at a high level of quality. Here’s a short list of some of the issues that we fixed in MFC for Visual Studio 11:

  • Addressed executable size of applications linked statically to MFC
  • Fixed DLLMain best practices violations by deferring initialization of the afxGlobalData structure
  • Fixed over 220 bugs, nearly 100 of which were reported by customers via the Connect web site
  • Fixed a large number of paint/draw issues (in toolbars, splitters, theme switches, etc.)
  • Fixed several memory leaks (in CMFCVisualManager and CMFCButton classes)
  • Added a number of missing exports (methods and data) to the MFC import libraries

라는구먼...

그럼 또 VS11 로 가야 고칠 수 있단 말인가...  훔훔...


Visual Studio 2010에서 ipch 폴더를 따로 만들기

2012. 2. 7. 16:35 | Posted by 하트바다

Visual Studio 2010 에서는 이번에 ipch 라는 폴더를 별도로 생성하면서 그곳에 Intellisense를 위한 cache를 생성한다. 그런데 이게 너무 무겁다. 이런이런....
하나 컴파일 할때마다 거의 GB 단위라는게 너무 무겁다. 또한 복사할 때도 귀찮고....
그래서 인터넷을 찾아보니 ipch 폴더를 이동하는 방법이 있었다.

도구->옵션->텍스트편집기->C/C++->고급으로 가자.
그곳에 대체(fallback)위치를 수정하면 된다.
수정하는 방법은 아래의 다이얼로그를 참조하자!!!
 


그럼 좀더 쾌적한 Visual Studio 2010 프로젝트를 사용할 수 있다.
물론 위에 설정한 폴더는 가끔씩 그냥 삭제해 버려도 된다.

 
지난번에도 포스팅을 했었는데~
Visual Studio 2010 으로 바꾸면서 가장 불편했던 것이 바로 MSDN 라이브러리를 보는 기본 방법이 IE 등의 브라우저를 이용하는 것만 가능했던 것이었다.
그래서 지난번 Visual Studio 2010 개발자 포럼에서도 꼭 다시 원복 시켜달라는 것 중의 하나였다.

그런데 이번에 드디어 다시 포함되었다!!!  (올레~)
Visual Studio 2010 SP1 이 배포되었길래 아무런 생각없이 깔고 나니 MS 도움말 뷰어 1.1 이 딱 뜨는 것이었다!!!
 


아!!!
이제 드디어 브라우저에서 다시 해방이 되는 순간이다!!!
Visual Studio 2010 사용자는 이번에 반드시!!!  SP1을 설치해서 도움말 뷰어의 편리함을 다시 느끼길 바란다.

 

Visual Studio 2010 에서 오프라인 도움말을... H3Viewer

2011. 3. 30. 15:28 | Posted by 하트바다
Visual Studio 2010 은 전반적으로 Intellisense 가 아주 막강해졌다.
하지만, 개인적으로 너무나  아쉬운 것이 있었으니...
그것은 항상 MSDN의 도움말을 받아오던 나로써는 갑자기 Internet Explorer로 띄워주는 도움말이 너무나 당혹스러웠다.
그래서 Visual Studio 의 확장관리자를 통해서 열심히 찾아보니 과연!!!
나처럼 힘들어 하는 사람을 위한 오프라인 도움말 뷰어가 있었다.

마이크로소프트 MVP가 제작한 H3Viewer 이다.


이 소프트웨어는F1을 눌러 도움말 라이브러리 에이전트를 실행하면 해당 소프트웨어를 실행하면서 도움말을 Visual Studio 2008의 외장뷰어의 형태로 보여준다.


원래는 이런 형태의 아주 암울한 IE 로 나온다. 난 개인적으로 이런게 너무 싫다.


Visual Studio 2010 에는 확장 관리자라는 것이 있어서 Add-in 은 모두 여기서 관리해 주는데 이곳에서 H3Viewer를 찾을 수 있다.


이렇게 온라인 갤러리에 가면 첫번째 장에 떡하니 있다. 여기 가서 다운로드 받으면 된다.


다운로드 받은 후 설치하면 실제로는 Visual Studio 2010에 Add-in 되는 것이 아니고 일반 MSDN 마냥 별도의 프로그램이 설치된다.
일단 별도로 H3Viewer 를 실행한 뒤에 Option -> Set Default Viewer for VS 2010 Help -> H3Viewer 를 선택하면 완료!!!

이후에 일단 도움말 라이브러리 에이전트를 종료 한 후에 Visual Studio 2010을 실행한 후에 F1을 누르면 이후부터는 H3Viewer 가 실행된다.

요기서 약간 욕심이 나서 자체 제작한 한국어 번역도 발번역으로 완료!!!
이곳에 올린다.


위의 파일을 H3Viewer 가 설치된 곳에 복사한다.


그다음 Set UI Language... 를 선택한다.

 
그럼 위의 다이얼로그 박스 마냥 Korean 이 생긴다. 선택하면 완료!!!
 


이리하면 한국어가 선택된 H3Viewer 가 된다.

잘 쓰시면 되겠다!!!!

 

이전 1 다음