2020/06/26

C++ 람다(Lambda) 함수 재귀호출

람다 함수를 재귀호출을 하려면 함수를 auto로 생성하면 안되고 std::function으로 생성해야 한다.
	std::function< int (int)> fibonacci = [&fibonacci](int nValue) -> int
	{
		if ( nValue <= 0 ) return 0;
		if ( nValue == 1 ) return 1;

		return fibonacci(nValue - 1) + fibonacci(nValue - 2);
	};

	int nResult = fibonacci(10);
	TRACE("Fibonacci: %d\n", nResult);

2020/06/18

[MFC] 관리자 권한을 필요로 하는 프로그램 만들기

관리자 권한이 필요한 프로그램을 만들어야 할 일이 있어 만드는 방법을 찾아보았다.

방법은 간단하였다. Visual Studio의 프로젝트 속성에서 Linker의 Manifest File 설정 항목중 UAC Execution Level 을 "requireAdministrator" 로 설정해 주면된다.

이렇게 만들어진 프로그램은 프로그램 아이콘에 방패모양이 오버레이된다.

Visual Studio 에서 프로젝트를 실행하려 할 경우 관리자 권한이 필요하여 아래 이미지처럼 관리자 계정으로 다시 시작을 요하는 메시지 박스가 나온다.

재시작 메뉴를 선택하면 현재 기동중인 Visual Studio가 종료되고 새로운 Visual Studio가 실행되며 관리자 권한은 요청하는 메시지 박스가 나타난다.

확인 후 실행된 Visual Studio은 아래처럼 관리자 권한으로 실행되었다.

이제 프로젝트를 실행할 수 있다.