Visual C++ 2013에서 리소스 ID 충돌 재배치 하는 프로그램 (이전 버전도 됨)

자세한 내용은 제작사 홈페이지 참조

http://www.riverblade.co.uk/products/resorg/downloads.html




ResOrg.7z


Visual Studio 2008 (2010)에서 매크로 동작 안할때 조치 방법


1. 현상

    - Visual Studio의 Windows를 업데이트 한 이후 Visual Studio의 매크로 기능이 동작을 안한다.


2. 원인

    - 2014년 2월 14일 이후에 나온 Windows 업데이트를 적용할 경우 매크로가 작동하지 않는다.

    - 참고 자료 : Visual Studio 2010 Macros Stop Working after February 2014 Windows Update


3. 해결 방법

    1. Visual Studio 2008 혹은 2010을 종료한다.


    2. 다음 3개의 파일을 편집하여 하기 XML 데이터 내용을 추가한다.

        VS2008의 경우 아래와 같다.

 

"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsmsvr.exe.config"

"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsaenv.exe.config"

"C:\Program Files (x86)\Microsoft Visual Studio9.0\Common7\IDE\devenv.exe.config"




        VS2010의 경우 아래와 같다.

 

"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsmsvr10.exe.config"

"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsaenv10.exe.config"

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.config"



    3. 상기 파일을 편집하여 다음 내용 추가

<configuration>

... <runtime> ... <AllowDComReflection enabled="true"/> ... </runtime> ... </configuration>




   3. 개발툴을 재 실행한다.




참고자료 : http://visualstudioextensions.vlasovstudio.com/2014/02/13/visual-studio-2010-macros-stop-working-after-february-2014-windows-update/




Visual Studio 2010의 가장 큰 특징중의 하나는 바로 C+0 Lamda  표현식을 사용할 수 있는 거다.

이 Lamda 표현식은 다른 언어 특히 루비나 파이썬과 같은 프로그래밍 언어에서 많이 사용하는 문법이었는데 지금까지 C++에서는 이 편리한 Lamda 표현식을 지원하지 않다가 이제서야 지원하게 되었다.

Lamda 표현식에 대해서는 인터넷에 자료가 널려 있기 때문에 더이상 설명하지 않는다. 구글링을 하기 바란다.


Lamda 표현식을 내가 만든 프로그램에서 사용하기 위해서는 다음과 같은 과정을 따르면 된다.


1. #include <functional>

2. typedef 을 이용해서 람다 함수 원형을 정의 한다.
3. 함수의 인자로 람다 Functor 를 입력받고 이를 활용하면 된다.


여기서 설명하는 C+0 Lamda 표현식은 MS 개발툴의 경우 VS2010 이상에서만 가능하다.




====================== 헤더 파일 선언 내용 ======================
#include <functional>

template<class _Fn1> inline
BOOL CALLBACK EnumControlsProcLamda(HWND hWnd, _Fn1 * func)
{
	(*func)(hWnd);
	return true;
}
template<class _Fn1> inline
void EnumAllControls(CWnd * pWnd, _Fn1 _Func)
{
	EnumChildWindows(pWnd->GetSafeHwnd(), (WNDENUMPROC)EnumControlsProcLamda<_Fn1>, (LPARAM)&_Func);
}



====================== 사용 방법 ======================
.
.
.
// 모든 자식 컨트롤 true로 만들기
// 람다 함수 내에서 지역변수 Capture가 필요하면 [=]혹은 [&]을 이용한다.
EnumAllControls( [](HWND h){
	if( h )
	{
		if( !IsWindowEnabled(h) )
		{
			EnableWindow(h);
		}
	}
});




====================== 함수 실행 시간 구하는 Lamda함수  ======================


template <class Function>
__int64 time_call(Function&& f)
{
   __int64 begin = GetTickCount();
   f();
   return GetTickCount() - begin;
}





출처 : http://blog.naver.com/dulee71/40162300020 에서 퍼옴..

[원격 PC 준비 사항]

1. msvsmon.exe 설치 및 실행

-. 파일 위치 : C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger\x86 or x64

-. 실행시 방화벽 해제 

  DCOM : TCP 135 

  IPSEC : UDP 4500, 500

-. 도구의 옵션에서 Windows 인증 선택

-. 도구의 권한에서 로컬 사용자를 디버그 허용 체크

 

2. 디버깅 프로그램을 실행파일과 디버깅 정보 파일(.pdb)을 같이 복사.

 

[로컬 PC 준비 사항]

1. 원격 계정과 같은 아이디와 패스워드로 로그인(.NET 환경 디버깅일 경우 필수)

2. VS 2010 방화벽 설정

-. 제어판 > Windows 방화벽 > Windows 방화벽에서 프로그램 허용

-. VS2010 허용 설정(홈/회사, 공용 네트워크 모두 체크)

3. VS2010 환경설정

-. 프로젝트 속성 > 디버그 탭 > 시작 외부 프로그램에 디버깅 대상 프로그램의 Full Path 입력.

(원격 PC의 "C:\Develop\Test\Test.exe" 라면 "C:\Develop\Test\Test.exe" 그대로 입력)

-. 원격 컴퓨터 사용 체크 및 컴퓨터 이름 입력.

(원격 컴퓨터 이름 찾기 ==> 원격에 실행된 msvsmon.exe의 도구 > 옵션 > 서버이름)

4. 디버그 시작(^^).

 

@ 2012.09.20 추가 ====================

-. 도메인 가입된 원격 컴퓨터도 디버깅 가능함.

-. 혹시 "워크스테이션과 주 도메인 사이의 트러스트 관계에 이상이 있습니다 " 라는 문구가 나타날 경우 도메인 해제 후 다시 도메인을 가입해 볼 것.

http://answers.microsoft.com/ko-kr/windows/forum/windows_7-security/%EC%9C%88%EB%8F%84%EC%9A%B0/121ca17f-7a01-41ff-ba74-381e9d74d5a4?msgId=fd4ec497-b364-405e-80e6-69daf13902da )

@ 2012.10.16 추가 ====================

-. 웬만하면 msvsmon.exe는 관리자 권한으로 실행하자.

( 권한 관련 문제로 삽질하는 경우가 있다. ㅠㅠ )

@ 2012.12.10 추가 ====================

-. 혹시 로컬에서는 잘 되는데 원격 디버깅시 "서비스 종점의 연결 실패. allowAccess 권한 설정" 같은 에러가 발생할 경우.

원격 컴퓨터의 로컬 보안정책 수정 필요.

(로컬 보안 정책 > 로컬 정책 > 보안 옵션 > 사용자 계정 컨트롤 : 관리 승은 모드에서 모든 관리자 실행

==> "사용 안함 "으로 설정 후 원격 컴퓨터 재부팅) 

 

출처 : http://blog.naver.com/dulee71/40162300020 에서 퍼옴..

아직 테스트는 안해 봤음..


X86용 VS2010설정 파일

Exported-2013-03-22.vssettings









Win7 X64에서 사용하는 VS2010설정 파일

Exported-2013-12-26.vssettings










Win7 X86 32비트에서 사용하는 VC6 설정 레지스트리 파일

win7x86_vc6_setting_registry.reg






Win7 X64 64비트에서 사용하는 VC6 설정 레지스트리 파일

vc6_x64_setting_registry.reg










.h 파일과 .cpp 파일을 상호 왔다 갔다 할 수 있는 매크로와 문자열에 _T()를 자동으로 추가해 주는 매크로

VS2010 매크로 파일(h,cpp 이동 _T자동삽입).7z



VC6용 .h/.cpp 왔다 갔다 매크로 + 주석 처리 매크로

mymacro3.dsm



프로그래밍하기 좋은 Consolas 폰트

consolas_font_setup.exe


+ Recent posts