1. 오류 내용: warning LNK4199:/DELAYLOAD:OleAcc.dll을(를) 무시합니다. OleAcc.dll에서가져오기를찾을수없습니다.
2. 해결방법
3. 오류내용: manifest authoring errorc1010001: Values of attribute "level" not equal in different manifestsnippets.
4. 해결방법
A. 예전 VS 2005 에서 개발시 필요한 권한상승매니페스트 작업
VS6.0에서작업된 결과물에 권한상승을 요청하는 매니페스트 작업은
많이알려진대로 처리하면 되지만 VS2005 에서의 작업은 약간 다름.
EX)VS2005에서작업된 main.exe와 static lib의 조합일 경우
<main과 dll 프로젝트 공통 적용 >
프로젝트-속성 - 링커 - 매니페스트생성(=yes)
프로젝트-속성 - 매니페스트 도구 - 입력및 출력 - 매니페스트 포함 (= yes)
<main 프로젝트적용 >
main프로젝트의작업폴더에 ***.exe.manifest 파일을 카피한후
프로젝트-속성 - 매니페스트 도구 - 입력및 출력
-추가매니페스트 파일(= ***.exe.manifest )
***.exe.manifest( 권한상승요청 매니패스트 파일 내용 )
<?xmlversion="1.0" encoding="UTF-8"standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="X86" name="AdminApp"type="win32"/>
<description>Description of your application</description>
<!-- Identify the application security requirements. -->
<ms_asmv2:trustInfo xmlns:ms_asmv2="urn:schemas-microsoft-com:asm.v2">
<ms_asmv2:security>
<ms_asmv2:requestedPrivileges>
<ms_asmv2:requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</ms_asmv2:requestedPrivileges>
</ms_asmv2:security>
</ms_asmv2:trustInfo>
</assembly>
B.
A방식으로사용시 VS2008로 환경을 바꾸어 컴파일하면
"manifestauthoring error c1010001: Values of attribute 'level' not equal in differentmanifest snippets.". 발생..
2008에서는 기본적으로권한에 대한 내용이 포함된 매니페스트 파일을 만들어 주게 되어 있고 요청 level이 asInvoker로 되어 있기때문에 VS2005로 작업시 추가포함으로들어간 권한 요청 매니페스트 파일과 충돌이 발생하여 나타나는 현상.. ( 기존 권한상승 매니페스트엔 level이 requireAdministrator 로 되어있음 )
해결은아주 간단..
1. 2005에서 추가로 포함시켰던 권한상승을 요청하는 별도의 매니패스트는지워버린다.2. 프로젝트 -> 속성-> 링커 -> 매니페스트파일 ->UAC 실행수준 에서 requireAdmin 을 선택
'오류 처리' 카테고리의 다른 글
[ERROR]vc2008 오류 및 해결 - 1 (0) | 2024.12.28 |
---|---|
[VC++]CE 장비타입 오류 해결 (0) | 2024.12.25 |
[VC++]vista에서 .dll 을 레지스트리에 등록할 때 발생하는 오류 (0) | 2024.12.25 |
[VC++]xx을(를) 찾을 수 없거나 마지막 증분 링크에 의해 빌드되지 않았습니다 (0) | 2024.12.25 |
윈도우XP & VC++에서 멀티쓰레드 디버깅시 문제 해결 방법 (0) | 2024.12.25 |