2011-03-30 3 views
2

C++/CLI에서 C++ dll에 대한 래퍼를 작성했습니다. 래퍼 안에서 필자는 typedef를 만들었습니다. 이러한 이름을 .NET 클래스로 내보내는 방법이 있습니까?.NET DLL에서 typedef 내보내기


배경 : typedef'd 클래스는 일부 템플릿입니다. 이러한 템플릿을 사용하려면 관리되는 매개 변수와 기본 매개 변수 (번역의 일부 임)가 필요합니다. 랩퍼의 클라이언트가 프로그램/알기에는 불가능합니다. 그래서 그는 사용 된 템플릿 버전에 대해 다른 별칭이 필요합니다.

+0

왜 별칭을 내보내겠습니까? 가독성을 위해 "using"키워드를 사용하여 동일한 유형을 매핑 할 수 있다고 가정합니다. 더 자세한 정보를 제공 할 수 있습니까? –

답변

1

템플릿에서 파생 된 몇 가지 새로운 클래스 정의로 typedef를 교환했습니다. 이것은 효과가있다.

+0

생성자를 전달해야합니다. – ildjarn

+0

예 - 이제 내 주요 문제는 이것이주기 참조를 도입한다는 것입니다. –

1

너무 많은 정보가 없지만 typedefing은 Clr 유형에서만 작동해야합니다. 일반 클래스, 어쩌면 템플릿 클래스는 typedefed 될 수 없습니다. 또한 네이티브 형식 중 일반적인 (단어 "공통"은 여기에서 올바르지 않을 수 있습니다.) .net 즉 double, int, char, Char * (char *가 아님) 등 이 코드는 작동하며 clr에 "새로운"유형.

namespace example 
{ 
#ifdef _WIN64 
    typedef sizeT UInt64 
#else 
    typedef sizeT UInt32 
#endif 
} 

이제 size_t가 .Net이며 크기는 플랫폼에 따라 다릅니다.