2009-10-23 4 views
3

관리되는 메타 데이터 (반사체에서 볼 수 있음)에서 네이티브 자리 표시 자 정의를 숨길 방법이 있습니까?혼합 C++/CLI 어셈블리의 혼란

/clr로 컴파일 된 파일과 컴파일되지 않은 파일이 포함 된 혼합 모드 C++/CLI 어셈블리를 만듭니다.

부스트와 MFC를 네이티브 코드로만 사용하고 있지만 boost/MFC 헤더는 여전히 관리 코드 파일에 #include 할 필요가 있습니다. 이 작업이 완료 되 자마자 (#pragma unmanaged 블록에 있는지 여부에 관계없이) boost 및 ATL (일명 MFC)의 모든 네임 스페이스와 클래스 이름 (실제 구현은 아님)이 Reflector 뷰에 나타납니다. 어셈블리.

이것은 심각한 문제는 아니지만 (어쨌든 여전히 문제가되지는 않지만) 혼란스러워 보이는 것처럼 보이지만 오히려 거기에 없었습니다. 그것을 제거 할 수있는 방법이 있습니까?

답변

0

아니요 없애 버릴 방법이 없습니다.

C++/CLI의 아이디어는 관리 코드가 비 관리 코드에 액세스 할 수 있어야한다는 것입니다. 유일한 방법은 모든 C++ 함수에 대한 관리되는 래퍼를 만드는 것입니다.

"함수 수준 연결"및 "전체 프로그램 최적화"를 시도했지만 내 보낸 기호 수를 줄이지 못했습니다.