본문 바로가기
프로그래밍

👨‍💻 [MFC - ChatGPT] MFC에서 'PowerGetActiveScheme': 식별자를 찾을 수 없습니다. 라고 나와요.

by 밝음의기둥 2024. 9. 5.
반응형

👨‍💻 안녕하세요, 윌리 프로젝트의 윌리 입니다.

MFC에서 절전 모드 관련 코딩을 하는데, PowerGetActiveScheme, PowerReadACValue, PowerReadDCValue 함수를 찾을 수 없다고 오류가 나서 물어봤습니다.


질문 >

'PowerGetActiveScheme': 식별자를 찾을 수 없습니다. 라고 나와요.

답변 >

PowerGetActiveScheme 함수를 사용하려고 할 때 "식별자를 찾을 수 없습니다." 오류가 발생하는 이유는 주로 다음과 같은 이유들로 인해 발생할 수 있습니다:

  1. 헤더 파일이 포함되지 않음: PowerGetActiveScheme 함수는 powrprof.h 헤더 파일에 선언되어 있습니다. 이 헤더 파일을 포함해야 합니다.
  2. 라이브러리가 링크되지 않음: PowerGetActiveScheme 함수는 PowrProf.lib 라이브러리에 정의되어 있으므로 이 라이브러리를 프로젝트에 링크해야 합니다.

해결 방법

  1. 헤더 파일 포함: 다음 코드를 소스 파일 상단에 추가하여 powrprof.h 헤더 파일을 포함합니다.
  2. #include <powrprof.h>
  3. 라이브러리 링크: PowrProf.lib 라이브러리를 프로젝트에 링크해야 합니다. 이를 위해 다음과 같이 #pragma comment 지시문을 추가합니다.
  4. #pragma comment(lib, "PowrProf.lib")
  5. 정의되지 않은 식별자 해결: 추가로, PowerGetActiveScheme는 Windows Vista 이상에서 사용 가능합니다. 따라서, 해당 함수가 작동하려면 Windows SDK에서 해당 API가 정의된 버전을 대상으로 빌드해야 합니다.
    #define WINVER 0x0600       // Windows Vista 이상
    #define _WIN32_WINNT 0x0600 // Windows Vista 이상
    #include <windows.h>
    
    
  6. 프로젝트에서 대상 플랫폼을 명시적으로 설정하기 위해서는 Windows.h 포함 이전에 WINVER와 _WIN32_WINNT를 다음과 같이 정의합니다.

최종 코드 예시

#include <afxwin.h>      // MFC 헤더 파일
#include <powrprof.h>    // PowerGetActiveScheme 함수
#pragma comment(lib, "PowrProf.lib")  // PowrProf 라이브러리 링크

void GetActivePowerScheme()
{
    GUID* pActivePolicyGuid = NULL;
    if (PowerGetActiveScheme(NULL, &pActivePolicyGuid) == ERROR_SUCCESS)
    {
        AfxMessageBox(_T("현재 활성화된 전원 관리 설정을 성공적으로 가져왔습니다."));
        if (pActivePolicyGuid != NULL)
        {
            LocalFree(pActivePolicyGuid);
        }
    }
    else
    {
        AfxMessageBox(_T("전원 관리 설정을 가져오는 중 오류가 발생했습니다."));
    }
}

요약

  • powrprof.h 헤더 파일을 포함하고, PowrProf.lib 라이브러리를 링크해야 합니다.
  • 타겟 플랫폼이 Windows Vista 이상인 경우, 프로젝트에서 이를 명시적으로 정의해야 합니다.

🎬 유튜브 채널 🎬

 

위로그@WiLog

📢 안녕하세요, 위로그@WiLog 시청자 여러분, 저는 윌리 입니다. 📢 위로그@WiLog 는 자기주도학습을 목적으로 라이브 스트리밍을 합니다. 📢 1인 게임 개발을 목표로 Unreal과 Blender를 학습 중입니

www.youtube.com

 

🎬 치지직 채널 🎬

 

위로그 채널 - CHZZK

지금, 스트리밍이 시작됩니다. 치지직-

chzzk.naver.com

 


 

반응형