2011-04-28 6 views
1

이전 질문에서 VB5 &에 대한 COM 개체로 작동하는 C# 클래스를 얻으려고 시도했습니다. 6. VB6 응용 프로그램에서 작동하는 COM 개체를 가져올 수 있었지만 VB5에서 작동하는 데 문제가있었습니다 - 같은 기계에.C# COM 구성 요소는 VB6에서만 작동하지만 VB5에서는 작동하지 않습니다.

참고로 앞의 질문은 HERE입니다.

궁극적 인 목표는 VB5에서 작동하는이 COM 개체를 가져 오는 것입니다. 그러나 런타임시 예외가 throw됩니다. 런타임 오류 80070002.이 오류 코드는 파일을 찾을 수 없음 예외임을 나타내는 HERE입니다. VB6 프로그램은 VB5 프로그램 (동일한 코드)과 동일한 컴퓨터에서 실행될 수 있으며 COM DLL은 (regasm.exe를 사용하여) 올바르게 등록되어 있으며 TLB는 VB5의 참조 목록에 표시됩니다. 실행 코드는 다음과 같습니다.

Dim arcom As ARCOMObject.ARCOM_Class 
Set arcom = New ARCOMObject.ARCOM_Class 
Dim s As String 
s = arcom.GetServiceResponse() 
MsgBox (s) 

클래스를 인스턴스화하는 라인을 실행할 때 예외가 발생합니다.

위의 두 번째 참조에서 특히 내가 발견 한 다른 곳에서는 depends.exe 유틸리티를 사용하여 종속성을 알 수있는 제안을했습니다. 불행히도, 나는 .Net dev 머신이나 VB5 머신에서 그러한 유틸리티를 찾을 수 없습니다. 어쨌든이게 나에게 아무 말도하지 않을지 모르겠지만 ...

그래서 VB5에서 볼 수없는 것은 VB6에서 볼 수 있거나 필요하지 않은 것입니까?

추가하는 편집 :

중요주의 할를 - 그것은 내가 그것을 실행하는 실행 내장 결코 IDE에서 실행되는 동안 오류가 발생했습니다,하지만 난 마지막으로 촬영했다 때 그렇게 때문에 DependencyWalker에 필요하기 때문에 실행 파일 자체가 정상적으로 작동하는 것으로 나타났습니다! 이제 DependencyWalker에서 나에게 "경고 : 지연로드 종속 ​​모듈에서 누락 된 내보내기 기능으로 인해 하나 이상의 모듈에 가져 오기가 완료되지 않았습니다."라는 메시지를 표시합니다. 와우, 멋지다,이 문장은 무엇을 의미합니까? LOL.

어쨌든, 나는 지금 당장 해결해야 할 문제가 있다고 확신하지 못하지만 어떤 제안이라도 환영합니다!

+0

: http://www.dependencywalker.com/ –

+0

이 아니라 반드시 예상되는 방식으로, 도움을했다! 내 질문에 대한 추가 기능을 참조하십시오. – Cyberherbalist

+0

그 오류 메시지가 몇 가지 안타까움을 던져서 오류가 무시 될 수 있음을 나타냅니다 (예 : http://www.dependencywalker.com/faq.html). 그러나 Windows XP에서만 실행하는 경우에만 가능합니다. –

답변

2

다음은 이러한 유형의 문제를 해결하지 못했을 때 항상 저에게 도움이되는 내용입니다. 문제는 VB5 버전에 파일이 누락되어 있으므로 어느 파일인지 알아야한다는 것입니다. 쉬운 해결책 (WinDBG에 의지하지 않고)은 FileMon이나 ProcMon을 던져 버리는 것입니다 - 실패 만 볼 수 있도록 필터링하십시오.

그런 다음 앱이 실패하면 누락 된 파일이 표시됩니다.

+0

Procmon과 filemon은 여러 차례 잼에서 이런 일을 도왔습니다. – DarinH

관련 문제