반응형
아래 예제 코드에서 2가지 부분에서 Access is denied 에러가 발생한다.
LONG openRes = RegCreateKeyEx(HKEY_LOCAL_MACHINE, g_drvkey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, NULL);
// error == 5 : access denied
if (openRes != ERROR_SUCCESS) {
return -1;
}
LONG setRes = RegSetValueEx(hKey, g_KN_Paper, 0, REG_BINARY, (CONST BYTE*)save_info, sizeof(mimo_settings_info_t));
// error == 5 : access denied
if (setRes != ERROR_SUCCESS) {
return setRes;
}
if (RegCloseKey(hKey) != ERROR_SUCCESS)
return -3;
첫번 째는 RegCreateKeyEx 에서 발생 하는 것이다.
이것은 Application 이 UAC 에 의해서 관리자로 실행이 되지 않았기 때문에 발생을 한다.
이를 위해서 아래그림과 같이 프로그램 속성에서 링커 속성 에 있는 UAC 레벨을 조절하여 실행하여 해결 할 수 있다.
두번째는 RegSetValueEx 에서 발생을 하는 경우이다.
이는 RegCreateKeyEx 에서 잘못된 권을 주엇을 때 발생을 한다. 일부 예제 소스에서 키를 생성할 때 KEY_CREATE_SUB_KEY 옵션을
이용했기 때문에 발생을 한다. 항상 KEY_ALL_ACCESS 로 접근해야 해결할 수 있따.
반응형
'Development > Visual Studio' 카테고리의 다른 글
[Windows] Access Mask Format (0) | 2022.12.27 |
---|---|
[Visual Studio] 삭제 하기 (1) | 2022.09.24 |
MSB8031: Building an MFC project for a non-Unicode character set is deprecated (0) | 2020.12.13 |
댓글