성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] VT sequences to "CONOUT$" vs. STD_O...
[정성태] NetCoreDbg is a managed code debugg...
[정성태] Evaluating tail call elimination in...
[정성태] What’s new in System.Text.Json in ....
[정성태] What's new in .NET 9: Cryptography ...
[정성태] 아... 제시해 주신 "https://akrzemi1.wordp...
[정성태] 다시 질문을 정리할 필요가 있을 것 같습니다. 제가 본문에...
[이승준] 완전히 잘못 짚었습니다. 댓글 지우고 싶네요. 검색을 해보...
[정성태] 우선 답글 감사합니다. ^^ 그런데, 사실 저 예제는 (g...
[이승준] 수정이 안되어서... byteArray는 BYTE* 타입입니다...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <br /> <div style='font-family: 맑은 고딕, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>DLL 'xxxxx.dll'을(를) 로드할 수 없습니다.</div><br /> <br /> 오늘, SignKorea라는 업체의 DLL을 DllImport 특성을 이용해서 연결시켰습니다. 그런데, 제 컴퓨터에서는 이상 없이 실행되었는데 다른 컴퓨터에서는 다음과 같은 오류를 내뱉었습니다.<br /> <br /> <span style='margin: 10px 0px 10px 10px; font-family: 맑은 고딕, Consolas, Verdana; font-style: italic; width: 800px; background-color: #ccffcc; color: #005555;'> DLL 'SKCommVB.DLL'을(를) 로드할 수 없습니다. 지정된 모듈을 찾을 수 없습니다. (예외가 발생한 HRESULT: 0x8007007E)</span><br /><br /> <br /> 디버그상에서의 상세 오류 로그도 별반 다르지 않습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; width: 800px; background-color: #fbedbb; overflow-x: scroll; font-family: Consolas, Verdana;' > 이 대화 상자 대신 JIT(Just-in-time) 디버깅을 호출하는 방법에 대한 자세한 내용은 이 메시지의 뒷부분을 참조하십시오. ************** 예외 텍스트 ************** <b style='color: Blue;'>System.DllNotFoundException: DLL 'SKCommVB.DLL'을(를) 로드할 수 없습니다.</b> 지정된 모듈을 찾을 수 없습니다. (예외가 발생한 HRESULT: <b style='color: Blue;'>0x8007007E</b>) 위치: CommVB_Test.ImportAPI.UnsetMatchedContext() 위치: CommVB_Test.Form1.Form1_Load(Object sender, EventArgs e) 파일 E:\Work\C#_CommVB\CommVB_Test\Form1.cs:줄 20 위치: System.Windows.Forms.Form.OnLoad(EventArgs e) 위치: System.Windows.Forms.Form.OnCreateControl() 위치: System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) 위치: System.Windows.Forms.Control.CreateControl() 위치: System.Windows.Forms.Control.WmShowWindow(Message& m) 위치: System.Windows.Forms.Control.WndProc(Message& m) 위치: System.Windows.Forms.ScrollableControl.WndProc(Message& m) 위치: System.Windows.Forms.ContainerControl.WndProc(Message& m) 위치: System.Windows.Forms.Form.WmShowWindow(Message& m) 위치: System.Windows.Forms.Form.WndProc(Message& m) 위치: System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 위치: System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 위치: System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ... [이하 생략] ... </pre> <br /> 어지간히도 헤매게 만들었습니다. 왜냐하면, 분명히 SKCommVB.DLL이 같은 디렉토리에 있다는 것이 확실한데 이와 같은 오류가 나니 그저 황당할 뿐이었는데요. 그러다가 혹시나 싶어서 <a target='_tab' href='http://www.dependencywalker.com/'>depends.exe(Dependency Walker)</a>를 이용해서 확인해 보았습니다. 아니나 다를까,,, 다음과 같이 누락된 DLL이 있었습니다.<br /> <br /> [그림 1: SKCommVB.dll - 누락된 NSLDAP32V11.dll]<br /> <img alt='skcommvb_interop_not_found_1.png' src='/SysWebRes/bbs/skcommvb_interop_not_found_1.png' /><br /> <br /> <span style='margin: 10px 0px 10px 10px; font-family: 맑은 고딕, Consolas, Verdana; font-style: italic; width: 800px; background-color: #ccffcc; color: #005555;'> "<br /> <b style='color: Blue;'>Error: At least one required implicit or forwarded dependency was not found.</b><br /> Warning: At least one delay-load dependency module was not found.<br /> Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.<br /> "</span><br /><br /> <br /> 모래 시계 표시가 있는 IEShims.dll이야 동적 로드 대상이다 보니 DllImport 특성으로 로드하는 순간에는 상관이 없지만, NSLDAP32V11.dll은 정적 링크된 것이기 때문에 사정이 다르죠. 그 때문에 "Error: At least one required implicit or forwarded dependency was not found."라는 오류 메시지가 있는 것입니다.<br /> <br /> 원래 정상이라면 아래와 같이 나와야 합니다.<br /> <br /> [그림 2: SKCommVB.dll - 정상적으로 로드]<br /> <img alt='skcommvb_interop_not_found_2.png' src='/SysWebRes/bbs/skcommvb_interop_not_found_2.png' /><br /> <br /> 암튼,,, 이것을 통해서 배운 시행착오라면. "DllImport" 특성이 적용된 API 실행 시 "DLL 'xxxxx.dll'을(를) 로드할 수 없습니다."와 같은 오류가 발생한다면 그것의 참조 DLL도 함께 조사해야 한다는 것!!!<br /> <br /> 그나저나, SignKorea 측에서는 이를 모르고 있을까요? 새로 설치된 "Clean PC"에서는 "NSLDAP32V11.DLL"로 인한 문제가 발생할 텐데...<br /> <br /><br /><hr /><span style='color: Maroon'>[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1025
(왼쪽의 숫자를 입력해야 합니다.)