※요약

MFC 프로젝트의 속성 중 런타임 라이브러리의 속성이 위와 같이 다중 스레드 속성으로 된 프로젝트가 있을때, 
PreTranslateMessage( )에서 새로운 다이얼로그를 생성했다가 닫으면 아래와 같이 Debug Assertion Failed이 발생한다.
Assert라 Release모드에서는 발생하지 않고, 디버그에서도 무시하면 아무런 문제가 없지만 매우 찜찜하다.


※해결 방법
원인은 잊어버렸지만 해결방법은 기억에 있다.
아래와 같이 return TRUE;를 해주면 더 이상 발생하지 않는다.



※요약
경고 warning LNK4099: '~.pdb' PDB를 '~.lib(~.obj)' 
또는 '~.pdb'에서 찾을 수 없습니다.
디버그 정보가 없는 것처럼 개체를 링크합니다.

디버그 모드에서 컴파일할때, 디버그 정보를 포함하지 않은 정적 라이브러리를 함께 링크하려고 하면
상기와 같은 경고가 뜰 때가 있다.

이 경고가 뜨는 이유는 올바른 PDB정보(vc90.pdb, vc100.pdb 등 버전에 따라 다름)를 찾지 못 하거나 
해당 *.pdb파일에 접근하지 못할 때, 또는 *.pdb파일은 있는데 그 안에 디버그 정보가 없을때 뜨는 경고다.

경고이기도 하고, 디버깅하지 않는다면 무시해도 기능상의 문제는 없지만 찝찝하다면 수정하는게 정신건상에 좋다.

참고로 *.pdb파일은 Program Debug Database의 약자로써, 디버깅 정보를 구성하는 이진 데이터 형태의 파일이다.

※해결 방법

아래 방법은 디버깅 정보를 *.pdb파일에 포함하지 않고 *.lib파일에 포함하므로 *.lib파일의 크기가 커진다.

사용자에게 배포하는 *.dll 파일도 아니고 *.lib파일이므로 크기가 커져도 별로 상관없다.

그리고 Release모드는 수정하지 않아도 된다.(아마도..ㅋ)


1. 수정하고자 하는 해당 라이브러리의 프로젝트 속성 창을 띄운다.( 단축키는 해당 프로젝트 선택후 Alt+F7 )



2. "구성 속성" -> "C/C++" -> "일반" -> "디버그 정보 형식" : "프로그램 데이터베이스(/Zi)"로 수정한다.



3. "구성 속성" -> "C/C++" -> "코드 생성" -> "최소 다시 빌드 가능" : "아니요(/Gm-)"로 수정한다.



3. "구성 속성" -> "C/C++" -> "명령줄" -> "추가 옵션"에 "/Ylsymbol"를 입력한다.



릴리스 정보 및 다운로드 페이지로 이동




Visual Studio 2013용 멀티바이트 MFC 라이브러리 다운로드 링크



Visual Studio 2012까지 지원되던 MFC 멀티바이트 라이브러리가 Visual Studio 2013 버전부터 빠지게 되었다.

2013 (12.0) 버전으로 새로 프로젝트를 만들거나, 멀티바이트로 된 이전 버전의 프로젝트를 12.0 버전으로 업그레이드 할 경우엔

Visual Studio 2013용 멀티바이트 MFC 라이브러리를 설치하면 된다.


Visual Studio 2013용 멀티바이트 MFC 라이브러리 다운로드 링크



지원 : Visual Studio 2012, Visual Studio 2013

버전 1.10

업데이트 날짜 : 2014. 04. 25.


비주얼 스튜디오 2012, 비주얼 스튜디오 2013에 추가할 수 있는 추가 기능입니다.

배경에 원하는 그림을 넣을 수 있고 위치와 투명도를 조절할 수 있습니다.


아래는 제가 사용하는 모습입니다.


아래는 다운로드 페이지에 있던 스크린샷입니다.


환경 설정입니다. 이미지와 투명도, 가로, 세로, 정렬을 조절할 수 있습니다.





※요약

프로젝트 속성이 UNICODE일때, TRACE에서 한글을 사용하면 

"_CrtDbgReport: String too long or IO Error" 라는 문구와 함께 에러가 발생할 수 있습니다.

이럴 때는 영어로 찍거나 아래와 같은 코드를 삽입해 주면 됩니다.


소스

⁄⁄헤더에 추가
#include <locale.h>

⁄⁄소스에 추가
#ifdef _DEBUG
  _tsetlocale(LC_ALL, _T("korean"));
#endif

※국가별 로케일 스트링

Primary language

Sublanguage

Language string

Chinese

Chinese

"chinese"

Chinese

Chinese (simplified)

"chinese-simplified" or "chs"

Chinese

Chinese (traditional)

"chinese-traditional" or "cht"

Czech

Czech

"csy" or "czech"

Danish

Danish

"dan" or "danish"

Dutch

Dutch (default)

"dutch" or "nld"

Dutch

Dutch (Belgium)

"belgian", "dutch-belgian", or "nlb"

English

English (default)

"english"

English

English (Australia)

"australian", "ena", or "english-aus"

English

English (Canada)

"canadian", "enc", or "english-can"

English

English (New Zealand)

"english-nz" or "enz"

English

English (United Kingdom)

"eng", "english-uk", or "uk"

English

English (United States)

"american", "american english", "american-english", "english-american", "english-us", "english-usa", "enu", "us", or "usa"

Finnish

Finnish

"fin" or "finnish"

French

French (default)

"fra" or "french"

French

French (Belgium)

"frb" or "french-belgian"

French

French (Canada)

"frc" or "french-canadian"

French

French (Switzerland)

"french-swiss" or "frs"

German

German (default)

"deu" or "german"

German

German (Austria)

"dea" or "german-austrian"

German

German (Switzerland)

"des", "german-swiss", or "swiss"

Greek

Greek

"ell" or "greek"

Hungarian

Hungarian

"hun" or "hungarian"

Icelandic

Icelandic

"icelandic" or "isl"

Italian

Italian (default)

"ita" or "italian"

Italian

Italian (Switzerland)

"italian-swiss" or "its"

Japanese

Japanese

"japanese" or "jpn"

Korean

Korean

"kor" or "korean"

Norwegian

Norwegian (default)

"norwegian"

Norwegian

Norwegian (Bokmal)

"nor" or "norwegian-bokmal"

Norwegian

Norwegian (Nynorsk)

"non" or "norwegian-nynorsk"

Polish

Polish

"plk" or "polish"

Portuguese

Portuguese (default)

"portuguese" or "ptg"

Portuguese

Portuguese (Brazil)

"portuguese-brazilian" or "ptb"

Russian

Russian (default)

"rus" or "russian"

Slovak

Slovak

"sky" or "slovak"

Spanish

Spanish (default)

"esp" or "spanish"

Spanish

Spanish (Mexico)

"esm" or "spanish-mexican"

Spanish

Spanish (Modern)

"esn" or "spanish-modern"

Swedish

Swedish

"sve" or "swedish"

Turkish

Turkish

"trk" or "turkish"


인터넷 상에 돌아다니는 소스나 남이 짠 소스 등을 보다보면 들여쓰기가 엉망이거나, 들여쓰기가 깨진 경우가 있습니다.

이럴 때 비주얼 스튜디오의 자동 들여쓰기 조정 기능을 이용하면 편리하게 들여쓰기 해줍니다.


게시판 등에 올라온 소스 코드는 아래와 같이 들여쓰기가 깨져 엉망인 경우가 많습니다.


자동으로 들여쓰기를 조정하고 싶은 영역만 드래그 하거나 

Ctrl+A로 전체 소스를 선택할 뒤 Alt+F8을 우르면 아래와 같이 자동으로 들여쓰기가 됩니다.



비주얼 스튜디오 2010 버전부터 추가된 기능입니다.

20%~400%의 사이즈로 변경할 수 있으며, 변경 방법은 크게 3가지가 있습니다.


방법1.

아래 캡쳐 사진에 보이는 빨간 사각형 영역 안의 콤보 박스를 마우스로 클릭하여 원하는 사이즈를 지정해 줍니다.


방법2.

숫자를 키보드로 직접 입력해 줍니다.


방법3.

"Ctrl + 휠", Ctrl키를 누른 상태에서 휠을 상/하로 돌려 사이즈를 조절하여 줍니다. 


결과 화면

130%로 확대한 화면 입니다.





Visual Studio 2013 Update3이 나왔습니다.

사진은 업데이트1이지만 링크는 업데이트3입니다.


링크


제작사 홈페이지 : http://www.wholetomato.com/


비주얼 스튜디오로 개발할 때 많은 도움이 되는 비주얼 어시스트입니다.

강력한 인텔리센스 기능과 구문 강조, 자동 완성, 리팩토링 기능 등이 있으며 

비주얼 스튜디오 6.0부터 최신 버전인 2013(12.0)까지 지원합니다.


어찌나 편리한지.. 사용 안 한지 5개월이 넘었음에도 불구하고 아직도 생각이 나네요.

사용 시, 소스 분석이나 타이핑 면에서 많이 편합니다.


좌측은 기본 화면, 우측이 비주얼 어시스트가 적용된 화면입니다.

클릭시 원본 크기로 볼 수 있습니다.

   


아래는 스펠링 확인 기능을 비활성화 시켜 한글 주석에 빨간 밑 줄이 생기지 않게 하는 옵션


VA Snippet Editor입니다.

사용자 매크로 비슷한건데, 아래와 같이 자주 사용하는 주석 형식이나 문법을 

Shortcut과 함께 등록시켜두면 편하게 사용할 수 있습니다.


////을 입력하면 상기에 정의 한대로 날짜와 제 이름이 소스에 입력 됩니다.


환경 변수는 이것저것 많지만 제가 자주 사용하는 건 날짜 위주의 환경 변수를 많이 사용합니다.

$YEAR$.$MONTH$.$DAY$.

$DATE$ 등




+ Recent posts