2010-04-23 3 views
2

컴파일 된 VB6에서는 호출되지만 IDE 또는 Excel의 VBE에서는 호출되지 않는 예제 프로젝트가 있습니다.VB IDE (VB6 & VBA)에서 RegFree COM 및 .NET을 호출 할 수없는 이유는 무엇입니까?

3 개의 DLL QA.DLL, QB.DLL, QAW.DLL이 있습니다. QA는 C# .NET으로 작성되었으며, QB 및 QAW는 VB6로 작성되었습니다. QAW는 QA의 COM 래퍼입니다.

호출 코드에서 활성화 컨텍스트를 만들고 매니페스트 파일을로드합니다.

모두 VB6로 만든 exe에서 정상적으로 작동하지만 VB6 또는 Excel의 VBA에서는 디버그 모드로 작동하지 않습니다.

저는 전체 예제가 zip입니다.

어떤 아이디어가 IDE 호출과 다른 것이며 왜 작동하지 않는가?

많은 들으

- DM

+0

솔루션이 있지만 .NET dll QA.dll을 Office11, Office12, VB98 등의 하위 디렉터리로 복사해야합니다. 모든 COM DLL과 매니페스트는 네트워크 드라이브에 배치 할 수 있습니다. 이런 종류의 일은 내가 필요로하는 Reg-Free의 목적을 무효화시킵니다. C 스타일 호출 또는 COM (즉, VBA 또는 VB6에서 호출)을 사용하여 네트워크에서 .Net 어셈블리를로드하는 방법에 대한 제안은 언제든지 환영합니다. 고마워 – DangerMouse

답변

1

응용 프로그램이 실제로 VB6.exe가 위치한 디렉토리에서 실행되고 있기 때문입니다. 당신은 실제로 당신의 dll 파일을 넣고 거기에 명시 할 수 있고 작동하도록 할 수 있습니다. 그러나 RegFree 개발을 많이한다면 디렉토리가 매우 빨리 엉망이 될 것입니다.