Microsoft MVP성태의 닷넷 이야기
오류 유형: 6. [VC++ 컴파일] already defined in ntdll.lib(ntdll.dll) [링크 복사], [링크+제목 복사],
조회: 36449
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

솔직히 이 현상을 재미있다고 표현해야 할지 모르겠지만.

최근에, 제가 "Windows 구조와 원리 그리고 Codes"라는 책을 읽고 있습니다.
거기 나온 예제를 컴파일 해보려고 했는데요.

참고로, 그 책의 소스는 아래 게시판에 "2번" 게시물로 등록되어져 있습니다.
http://cafe.naver.com/andyjung.cafe?iframe_url=/ArticleList.nhn%3Fclubid=11534822%26menuid=8%26boardtype=L%26page=

압축 파일을 풀면 "Windows_Codes" 폴더 밑으로, "ListHandles"라는 폴더가 보입니다.
제가 컴파일한 예제는 그 프로젝트입니다.

그 프로젝트를 컴파일하려면 ntdll.lib 파일이 필요한데, 이 파일은 SDK에는 포함되어 있지 않은 것으로, NT DDK를 다운로드/설치해야만 합니다. (DDK는 MSDN Subscriber에 가입된 경우에만 다운로드가 가능합니다.) 설치 후, lib 폴더를 VS.NET 2005의 "Options" 메뉴를 통해서 등록해 두어야 합니다.

어쨌든, 우여곡절 끝에 환경 구성을 한 다음.

제 컴파일 환경은 VS.NET 2005의 VC++ 8.0입니다. 그 예제는 dsw로 되어 있어서, 더블 클릭을 하게 되면 VS.NET 2005는 우선 프로젝트 변환을 하겠다고 합니다.

정상적으로 변환된 후, 컴파일을 시도하면 다음과 같은 오류가 발생합니다.

Linking...
LIBCMTD.lib(strtol.obj) : error LNK2005: _strtoul already defined in ntdll.lib(ntdll.dll)
.\Debug/ListHandles.exe : fatal error LNK1169: one or more multiply defined symbols found
Build log was saved at "file://d:\Snippet\BookCode\Windows_Codes\ListHandles\Debug\BuildLog.htm"
ListHandles - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

자, 이제 프로젝트 설정에서 "Use of MFC" 옵션을 기존의 "Use Standard Windows Libraries"에서 "Use MFC in a Shared DLL"로 바꿔주고 컴파일을 합니다.

프로젝트 설정

이번엔 다음과 같이 오류가 발생합니다.

------ Build started: Project: ListHandles, Configuration: Debug Win32 ------
Linking...
ListHandles.obj : error LNK2019: unresolved external symbol __imp__AdjustTokenPrivileges@24 referenced in function "int __cdecl EnablePrivilege(char const *)" (?EnablePrivilege@@YAHPBD@Z)
ListHandles.obj : error LNK2019: unresolved external symbol __imp__OpenProcessToken@12 referenced in function "int __cdecl EnablePrivilege(char const *)" (?EnablePrivilege@@YAHPBD@Z)
ListHandles.obj : error LNK2019: unresolved external symbol __imp__LookupPrivilegeValueA@12 referenced in function "int __cdecl EnablePrivilege(char const *)" (?EnablePrivilege@@YAHPBD@Z)
.\Debug/ListHandles.exe : fatal error LNK1120: 3 unresolved externals
Build log was saved at "file://d:\Snippet\BookCode\Windows_Codes\ListHandles\Debug\BuildLog.htm"
ListHandles - 4 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

자... ^^; 이제 다시 "Use MFC in a Shared DLL" 옵션을 원래의 "Use Standard Windows Libraries"으로 돌려놓습니다. 참, 재미있게도... 이젠 정상적으로 프로젝트가 컴파일되어집니다. ^^






[최초 등록일: ]
[최종 수정일: 11/22/2022]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 166  [167]  168  169  170  171  172  173  174  175  176  177  178  179  180  ...
NoWriterDateCnt.TitleFile(s)
987정성태1/29/201145952디버깅 기술: 33. PDB Symbol 로드 오류 - Cannot find or open the PDB file. [2]
986정성태1/26/201139348.NET Framework: 204. 분리된 ThreadPool 사용 - Smart Thread Pool
985정성태1/25/201133255디버깅 기술: 32. 인증서로 서명된 닷넷 어셈블리의 실행 지연 현상
984정성태1/25/201128389개발 환경 구성: 101. SharePoint 2010 - Form Design
983정성태1/23/201133957제니퍼 .NET: 15. 눈으로 확인하는 maxWorkerThreads, minFreeThreads 설정값 [1]
982정성태1/22/201129550개발 환경 구성: 100. SharePoint 2010 - iPad 친화적인 게시판 만들기 (사용자 지정 목록) [1]
981정성태1/19/201127028개발 환경 구성: 99. SharePoint 2010 - 웹 애플리케이션 생성 시 고려해야 할 점. [1]
980정성태1/19/201138655개발 환경 구성: 98. SharePoint 2010 - Office Web Apps 설치
979정성태1/18/201131668개발 환경 구성: 97. SharePoint 2010 팀 사이트 구성
978정성태1/16/201139133.NET Framework: 203. VPN 자동 연결 및 Router 설정 추가
977정성태1/12/201136939개발 환경 구성: 96. SharePoint 2010 설치 [5]
976정성태1/11/201160439오류 유형: 111. IIS - 500.19 오류 (0x8007000d)
975정성태1/10/201133181.NET Framework: 202. CLR JIT 컴파일러가 생성한 기계어 코드 확인하는 방법 [3]파일 다운로드1
974정성태1/8/201132976.NET Framework: 201. 윈폼 TreeView - Bold 폰트 설정 후 텍스트가 잘리는 문제 [1]파일 다운로드1
973정성태1/7/201132147.NET Framework: 200. IIS Metabase와 ServerManager 개체 활용파일 다운로드1
972정성태1/7/201130117개발 환경 구성: 95. SQL Server 2008 R2 이하 버전 정보 확인
971정성태1/5/201140085.NET Framework: 199. .NET 코드 - Named Pipe 닷넷 서버와 VC++ 클라이언트 제작 [2]파일 다운로드1
970정성태1/4/201140553.NET Framework: 198. 윈도우 응용 프로그램에 Facebook 로그인 연동 [1]파일 다운로드1
969정성태12/31/201046374VC++: 45. Winsock 2 Layered Service Provider - Visual Studio 2010용 프로젝트 [1]파일 다운로드1
968정성태12/30/201032487개발 환경 구성: 94. 개발자가 선택할 수 있는 윈도우에서의 네트워크 프로그래밍 기술 [2]
967정성태12/27/201033968.NET Framework: 197. .NET 코드 - 단일 Process 실행파일 다운로드1
966정성태12/26/201031751.NET Framework: 196. .NET 코드 - 창 흔드는 효과파일 다운로드1
965정성태12/25/201034038개발 환경 구성: 93. MSBuild를 이용한 닷넷 응용프로그램의 다중 어셈블리 출력 빌드파일 다운로드1
964정성태12/21/2010150134개발 환경 구성: 92. 윈도우 서버 환경에서, 최대 생성 가능한 소켓(socket) 연결 수는 얼마일까? [14]
963정성태12/13/201034514개발 환경 구성: 91. MSBuild를 이용한 닷넷 응용프로그램의 플랫폼(x86/x64)별 빌드 [2]파일 다운로드1
962정성태12/10/201028841오류 유형: 110. GAC 등록 - Failure adding assembly to the cache: Invalid file or assembly name.
... 166  [167]  168  169  170  171  172  173  174  175  176  177  178  179  180  ...