레이블이 Visual Studio 2012인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Visual Studio 2012인 게시물을 표시합니다. 모든 게시물 표시

2017년 2월 9일 목요일

MultiByte To UniCode 변환 (Window)

포스트할 내용은 윈도우 코딩중 사용하게 되는 문자열 변환 관련 입니다.
최근에 프로젝트를 Multibyte 에서 UniCode로 변환 해서 진행하다 보니 기본이
UniCode로 진행 하게 되어서 데이터 처리 하는데 기본에 처리 했던 방식이라 정리 차원에서..
쓰여질 윈도우 API 함수는 MultiByteToWideChar 함수 입니다.
API 원형은 MSDN 에서 찾아 보시면 되구요 간단히 함수로 만들어 보면 아래와 같습니다.



LPBYTE BDConM2W(UINT nCodePage, LPBYTE szSrc, int nLen, int &nConLen)
{
 nConLen = MultiByteToWideChar(nCodePage, 0, (LPCSTR)szSrc, nLen, NULL, 0);
 LPWSTR pConBuff = new WCHAR[nConLen];
 pConBuff[0] = 0;

 MultiByteToWideChar(nCodePage, 0, (LPCSTR)szSrc, nLen, pConBuff, nConLen);

 return (LPBYTE)pConBuff;
}
물론 변환해서 받은 쪽에서 메모리 해제는 해줘야 합니다.
두번에 걸쳐서 하는 이유는 첫번째에는 변환할 사이즈를 얻어내어 실제로 변환할 버퍼의 크기를 지정하기 위함입니다.
그럼 ^^;

UniCode To MultiByte 변환 (Window)

포스트할 내용은 윈도우 코딩중 사용하게 되는 문자열 변환 관련 입니다.
최근에 프로젝트를 Multibyte 에서 UniCode로 변환 해서 진행하다 보니 기본이
UniCode로 진행 하게 되어서 데이터 처리 하는데 기본에 처리 했던 방식이라 정리 차원에서..
쓰여질 윈도우 API 함수는 WideCharToMultiByte 함수 입니다.
API 원형은 MSDN 에서 찾아 보시면 되구요 간단히 함수로 만들어 보면 아래와 같습니다.


LPBYTE BDConW2M(UINT nCodePage, LPBYTE szSrc, int nLen, int &nConLen)
{
 nConLen = WideCharToMultiByte(nCodePage, 0, (LPCWSTR)szSrc, nLen, NULL, 0, NULL, NULL);
 LPBYTE pConBuff = new BYTE[nConLen];
 pConBuff[0] = 0;

 WideCharToMultiByte(nCodePage, 0, (LPCWSTR)szSrc, nLen, (LPSTR)pConBuff, nConLen, NULL, NULL);

 return pConBuff;
}

물론 변환해서 받은 쪽에서 메모리 해제는 해줘야 합니다.
두번에 걸쳐서 하는 이유는 첫번째에는 변환할 사이즈를 얻어내어 실제로 변환할 버퍼의 크기를 지정하기 위함입니다.
그럼 ^^;

2016년 8월 24일 수요일

Visual Studio 2010 부터 생기는 ipch 디렉토리와 .sdf 파일의 생성 위치 바꾸는 방법.

Visual Studio 2010 이후 부터는 기존에 생기던 .ncb 파일이 생기지 않고
.sdf 파일과 ipch 폴더가 생긴다.
위 파일들은 인텔리 센스 관련 파일들인데. 소스를 형상관리 툴과 연계 하다 보면 해당 파일들이 눈에 거슬리게 된다.
다행이도 Visual Studio 설정에서 해당 파일들을 특정 위치에 고정 시킬수 있는데
해당 옵션을 찾아가는 방법은 버젼별로 동일하다(2010,2012,2013  까지)


옵션명은 "Fallback Location" 이며 세가지 옵션이 있으며 처음 두개는 무조건 "True" 로 변경하고마지막 경로는 지정하고 싶은 경로를 지정하면 된다.
지정하고 나서 프로젝트내에 있는 .sdf 파일과 ipch 폴더를 지우고 프로젝트를  새로 로드 하면프로젝트명과 뒤에 유니크 아이디를 가지고 폴더를 생성하여 관리가 된다. 

2015년 4월 29일 수요일

Visual Studio Post Build 활용

빌드가 완료된후에 특정 파일들을 복사 할때

일단 개인적으로는 라이브러리 생성시 헤더 파일을 특정 위치에 복사 해야 하기 때문에 처리함.

Build Events -> Post-Build Event -> Command Line 에

Copy "$(ProjectDir)\Utils\*.h" "..\include\"

명령어를 입력하면 빌드가 완료된후에 해당 소스 폴더에 있는

헤더 파일을 특정 인크루드 폴더로 이동한다.

매번 카피 해야 하는 번거로움을 없앴다.. ^^

2014년 11월 26일 수요일

MSVCRTD.dll 관련 해결방법.

Visual Studio 2003 이상 부터 설치 하신 분들은 간혹 디버그 모드에서 이전 모듈을 로드해서 쓰실때
"MSVCRTD.dll" 이 없다고 로드 안될때가 있다.

이는 Visual Studio 98 용 디버그 모듈이며 해당 Visual Studio 98 을 설치 해야만 로컬에설치 되는 파일이다.

물론 64비트 O/S에서 부터는 Visual Studio 98 이 정상 동작 하지 않는다. 다만 원활한 코딩을 위해서

그냥 뷰어 형태로 쓰기 위해 Visual Studio 98을 설치 하고 나머지 Visual Studio 를 연도 별로 설치 해서

개발 환경을 구성 하면 될것이다.

아니면 이전 모듈에 대한 소스를 가지고 있다면 그 모듈을 새로운 Visual Studio 로 디버그용을 컴파일 하여 관리 하면 된다.

2013년 1월 24일 목요일

Visual Studio 2012 Update 1 이후 Help Viewer 2.0 실행 안되는 버그 해결하기.

Visual Studio 2012 를 쓰다가 얼마전에 Update 1 을 받아서 처리 하고 난후에 Viewer 2.0 이 실행이 안되었다.

열심히 구글링 해서 답을 찾았는데 모두 영문이라 여기에 해결 방법을 적어 놔요..

일단.

제 컴퓨터가 윈도우 7 이 기준이므로 윈도우 7 기준으로 설명합니다.

아래 폴더로 이동합니다.

C:\ProgramData\Microsoft\HelpLibrary2\Catalogs\VisualStudio11

해당 폴더에 "CatalogType.xml" 파일이 없을겁니다.

해당 파일을 생성 해주시고요 안에 내용은 아래 내용으로 채워서 저장하시고 다시 Help Viewer 2.0을 실행 하시면 됩니다.

"<?xml version="1.0" encoding="utf-8"?><catalogType>UserManaged</catalogType>"

그럼.. ^^