2009-04-23 5 views
0

Windows 양식 컨트롤 라이브러리 프로젝트 (C++) 내가 쓰는 것은 관리되지 않는 DLL을 사용합니다. 관리되지 않는 dll에는 헤더 파일 (Cheshire cat)이 있습니다. 그리고 그것을 컨트롤 라이브러리 프로젝트에 포함하기 만하면됩니다. 그리고 관리되지 않는 dll 함수를 호출합니다 (물론 적절한 마샬링이 필요합니다). 이것은 컴파일하고 빌드합니다. 문제는 내가 컨트롤을 Managed C++ winform 응용 프로그램 인 내 스캐 폴딩의 도구 상자에 추가하려고 할 때 VS2005가 .Net 모듈이 아니라고 불평 할 때입니다.Windows 폼 컨트롤 라이브러리. 관리 및 Unamanaged

사람들이 MFC dll을 사용하여 윈도우 폼 컨트롤로 변환하는 것을 목격했습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?.

답변

1

아마 VS2005가 네이티브 .DLL을 찾지 못했기 때문일 수 있습니다. 이 .DLL은 기본 .DLL이의 "정상적인"방식으로 검색됩니다 :

  • 현재 디렉토리
  • 애플리케이션 direcotry (어딘가 %의 ProgramFiles % \ (나는 그것이 대부분 VS의 시작 디렉토리라고 생각합니다) Microsoft Visual Studio ...)
  • % PATH % dirs.

네이티브 DLL을 위에서 언급 한 dir에 넣고 더 나은 결과를 얻으려고 시도 할 수 있습니다.

기본 네이티브 부분을 정적으로 만들고 정적 인 .NET 프로젝트에 연결하는 것이 좋습니다 (가능한 경우). 네이티브 .DLL 찾기 문제를 피할 수 있기 때문에 절대적으로 권장합니다. (이것은 많은 문제 때문에 내가 한 일입니다. 예를 들어, .NET DLL을 처리하고 참조 된 모든 DLL을 포함하여 번역기 패키지로 압축하는 Translator 도구 [SDL Passolo]가 있습니다. 그러나 .NET DLL 만 포함하지만 네이티브는 포함하지 않습니다. DLL!).

+0

이것이 내가 프로그래밍을 좋아하는 이유입니다. 겉보기에는 복잡한 문제는 간단한 해결책이 있습니다. 그 반대 :-) – rptony