2010-03-23 5 views
2

타사 .NET DLL을 사용하는 관리되지 않는 C++ 프로젝트가있는 경우에도 .NET DLL 클래스 정의를 찾을 수 없습니다. IDE가 클래스 정의를 찾을 수 없습니다.VS 2005에서 Regasm

나는 RegAsm.exe TheLib.dll /codebase /tlb:TheLib.tlb을 실행했으며 두 시스템의 레지스트리 항목이 일치합니다. 즉, IDE에서 TheLib.Function()이 정의되지 않았다고하더라도 두 컴퓨터의 레지스트리에 있습니다.

내가 잘못 할 수 있습니까? (두 시스템의 소스가 동일한 저장소에서 체크 아웃되고 커밋되지 않았거나 버전 화되지 않은 파일이 없습니다.)

답변

1

라이브러리에서 클래스 나 함수를 올바르게 내보내지 않으면이 문제가 발생할 수 있습니다. 코드가 링크되어 있어도 링크가 잘 컴파일 되어도 정의를 생략하거나 실제로 함수에 대한 내보내기를 생성하지 않을 수 있습니다. 그래서 lib를 임포트하는 다른 프로젝트들은 정의되지 않은 것으로 보여줍니다.

This article은 DLL에서 클래스를 내보내는 좋은 방법을 설명하고 문제와 관련 될 수 있으므로 읽을 가치가 있습니다.

+0

답변 해 주셔서 감사합니다. 나는 관련없는 이유로 그 기계를 폐기했다. 그래서 이것이 문제를 해결했는지는 모른다. 어쨌든 +1 해주세요 :) – egrunin

관련 문제