새 ATL 프로젝트에서 특성을 사용하는 옵션이 Visual Studio 2008에서 제거된 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/50310

문제

MSDN 댓글의 내용은 다음과 같습니다."ATL Internals(2ed) 책에 따르면 특성 사용은 더 이상 사용되지 않으며 새 ATL 프로젝트에서 사용해서는 안 됩니다."

그런데 왜요?!!

도움이 되었습니까?

해결책

ATL에서 이러한 속성은 컴파일러 트릭이었습니다.C#의 속성과 같은 플랫폼의 핵심 부분은 아니었습니다.또한 매크로보다 디버그하기가 더 혼란스럽고 생성된 속성 코드를 덤프하는 방법도 번거롭습니다.

또 다른 문제는 C++ 컴파일러 호환성과 표준 준수 문제일 가능성이 높습니다.속성은 더 아름다운 C++ 코드를 만들지 않았으며 아마도 이 구문은 실제 C++ 표준의 향후 버전에서 사용될 수 있습니다.

다른 팁

이 책의 부록 D에 이에 대한 내용이 나와 있습니다.

속성 ATL에는 컴파일러 확장이 필요하며 발생하는 문제는 다음과 같습니다.

  • 속성에 의해 생성된 코드 또는 속성과 코드 간의 상호 작용 디버깅
  • 생성된 코드를 제어할 수 없습니다.
  • 버그, 특히 연결 지점 주변
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top