문제

.NET 라이브러리 또는 도구를 사용하여 개발하거나 배포하려는 C ++ 프로젝트를 진행하고 있습니다. 이는 Visual Studio Win32 콘솔 응용 프로그램을 사용하여 만들어내는 것이 합리적입니다. 그러나 Visual Studio에서 CLR 응용 프로그램을 사용할 때 디버깅 능력이 훨씬 강력하다고 들었습니다. 그래서 몇 가지 질문이 있습니다.

  1. CLR 앱과 Win32 앱이 있으면 .NET 라이브러리 나 기타 리소스를 사용하지 않더라도 개발 프로세스에 기능이 추가된다는 것이 사실입니까?

  2. 그렇다면 STL 등을 사용하여 순수한 C ++ 프로젝트를 개발하고 .NET 기능을 활용하지 않더라도이를 활용하기 위해 CLR 프로젝트로 프로젝트를 개발/컴파일 할 수 있습니까? 아니면 그러한 프로젝트에 다시 되돌아가는 것이 사소하지 않도록 근본적인 차이를 필요로합니까? 즉 Win32 콘솔 앱을 고수해야합니까?

도움이 되었습니까?

해결책

결론 답변, 응용 프로그램에서 CLR 또는 .NET 객체를 사용하지 않으려는 경우 일반 Win32 C ++ 라이브러리 만 사용하십시오. 다른 일을하면 길을 따라 통증이 생길 수 있습니다.

이제 디버깅에 대한 원래 질문에 답하기 위해 CLR로 디버깅하면 일반 C ++ 앱 디버깅에 대한 특정 이점이 있습니다. Visual Studio 2005부터 C#과 VB.net은 모두 로컬 / 오스트로스 / 시계 창에 변수 표시를 훨씬 더 가치있게 만드는 데 중점을두기 시작했습니다. 주로 DebuggerDisplay, DebuggerTypeproxy 및 Visualizer Framework와 같은 .NET 속성의 도입을 통해 수행되었습니다.

.NET 유형을 사용하지 않으면 이러한 이점을 얻지 못합니다.

C ++ 발현 평가자는 이들 중 어느 것도 활용하지 않습니다. 유형 디스플레이를 사용자 정의하는 자체 방법이 있습니다. 그러나 Debugee 프로세스에서 코드를 실행할 수 없기 때문에 속성 스타일만큼 특징이 있거나 잠재적으로 위험하지 않습니다.

C ++ 디버깅이 잘못된 경험을 제공한다고 말하는 것은 아닙니다. 그것은 단지 다르고 많은 STL 컨테이너 유형에 더 나은 디스플레이가 있습니다.

CLR 앱을 디버깅하려면 특정 단점이 있습니다. 예를 들어, Jiter가 로컬 변수, 매개 변수 및 종종 "this"를 숨기기 때문에 최적화 된 코드를 디버깅하는 것은 거의 불가능합니다. 비슷하게 구성된 C ++ 앱을 디버깅하는 것도 실망 스러울 수 있지만 항상 레지스터를 잡고 issame가 잘릴 수 있습니다. CLR 앱에 대해 동일하게하는 것은 기껏해야 어렵습니다.

다른 팁

CLR에 기본 C ++ 코드를 컴파일하면 전체 벌레 캔이 열립니다. 기존 C ++ 코드에 대한 많은 투자가없고 관리 된 유형으로 코드를 실행해야 할 필요성이 없다면 피하고 싶은 것입니다.

예를 들어 C ++/ CLI는 CLR 어셈블리에 기본 C ++ 코드를 바로 묶는 한 가지 방법이지만 C ++/ CLI는 C ++ 언어에 비표준 구문을 추가하고 관리 유형과 혼합 된 기본 C ++ 유형을 사용하면 매우 까다로운 문제처럼 보입니다. 최소한.

결론적으로, 나는 그것을 기본 앱으로 유지할 것입니다. CLR에이를 포팅 할 계획이 있고이 프로젝트를 방금 작업하기 시작했다면 C#과 같은 CLR- 네이티브 언어로 쓰기 시작을 진지하게 생각할 것입니다.

이 답변은 여기에서 복사했습니다. http://social.msdn.microsoft.com/forums/vstudio/en-us/895ecb47-8b34-4a1a-a20b-fda1e5e576eb/whats-betweenweenween-between-console-application-and-win32-console- 신청

CLR 콘솔 응용 프로그램과 Win32 콘솔 응용 프로그램의 차이점은 무엇입니까?- 전자는 공통 언어 런타임 (즉, .NET 프레임 워크)을 사용합니다. 후자는 그렇지 않습니다.

또한 Win32 콘솔 애플리케이션 모델에서 네임 스페이스 시스템을 사용할 수 없습니다. - 시스템 네임 스페이스는 .NET 프레임 워크의 일부입니다.

네임 스페이스를 사용하려면 어떻게해야합니까?- .NET 응용 프로그램을 작성해야합니다.

그리고 C# 모델과 같은 입력 힌트가 없습니까?- 기존 버전의 Visual Studio에는 C ++/CLI에 대한 Intellisense가 없습니다. .NET 응용 프로그램을 원한다면 C#이 더 나은 언어 선택 일 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top