programing

COM, COM+, DCOM, 어디서부터 시작할까요?

bestprogram 2023. 10. 19. 22:38

COM, COM+, DCOM, 어디서부터 시작할까요?

COM+, DCOM이 궁금합니다.MSFT에서 기본적으로 이 도구를 사용하는 것을 권장하지 않는다는 것을 알고 있지만(C/C++를 사용하는 것을 의미함), 인터넷 익스플로러를 C 프로그램에 내장하는 것과 같은 이러한 기술을 사용하는 방법을 배우고 싶습니다.

저는 이 기술에 대해 잘 아는 사람들을 찾을 수 있을 거라고 생각했습니다.

어디서부터 시작할까요?무슨 생각 있어요?(헬로월드 DCM과 같은) 예가 있습니까?

만약 여러분이 COM을 배우는 것에 대해 진지하게 생각한다면, 돈 박스의 "에센셜 COM"은 분명히 절대적인 "꼭 읽어야 할" 것입니다.COM은 혼란스러울 수 있으며, 제가 보기에 Don Box는 실제로 "그것을" 얻은 몇 안 되는 사람 중 한 명입니다.

"Essential COM"의 예제 코드는 C++에 있습니다.C에서는 COM을 지원하는 책을 많이 찾을 수 없을 것입니다.COM은 C로 쓸 수 있지만, 매우 고통스러울 것입니다.COM은 C++ 개발에 최적화되어 있습니다.

이 책은 완벽하지도 않고 완전하지도 않습니다.그 책에는 약간의 (당연한, 약간 난해한) 영역들이 있습니다.예를 들어, 이 책은 "모니커"에 대한 1/2페이지 정도의 분량을 가지고 있습니다. (저는 저를 만족시키는 모니커에 대한 대우를 본 적이 없습니다.)저는 이 책이 기본적인 책이라고 생각합니다.

둘째, 실생활에서 모든 COM 접착제를 직접 쓰기 보다는 ATL과 같은 지원 라이브러리를 사용하기를 원할 가능성이 높습니다.기본 설정에서도 COM에서 미묘한 실수를 할 수 있는 방법이 너무 많습니다.ATL은 당신에게 좋은 패턴을 주고 지루한 코드를 구현해 줄 것입니다.학습에 있어서, 당신은 평범한 C++를 사용하는 것이 더 좋습니다.

ATL에 관한 책들이 많고 꽤 좋습니다.저는 ATL이 VC++6 시절부터 꽤 많이 변했다는 것을 알고 있지만, 그곳에서는 직접적인 지식이 없습니다. 슬프게도 제가 작업하는 대부분의 COM 코드는 VC6에서 C++의 맛으로 영원히 잠겨 있습니다.

사용하려는 Visual Studio 및/또는 ATL 버전을 위해 제공되는 책이 무엇이든 작성되었는지 확인합니다.

COM 책에 대한 몇 가지 배경:

COM을 오해하거나 잘못된 것에 초점을 맞추는 책들이 많다는 것에 주목하세요.그런 점에서 오래된 책들이 더 좋지 않습니다.처음 몇 권의 책들 중 일부는 COM을 OLE를 작동시키는 데 필요한 배관 세부사항("Object Linking and Embedding", 스프레드시트 범위를 워드 문서로 드래그 앤 드롭할 수 있는 기능) 이상으로 취급했습니다.그것 때문에, 많은 자료들이 매우 혼란스럽습니다.사람들이 OLE가 그렇게 중요하지 않고 COM이 실제로 중요하다는 것을 깨닫기까지 오랜 시간이 걸렸습니다.

돈 박스가 "Essential COM"을 출판할 무렵, COM의 기초에 균열이 생기기 시작했습니다.COM에 심각한 결함이 있는 것은 아니지만, 개발 커뮤니티의 요구 사항이 진화하고 COM이 심각한 개편 없이 할 수 있는 것보다 더 커졌습니다.

.NET은 COM의 한계, 특히 "유형 정보" 영역을 다루기 위한 노력에서 탄생했습니다."Effective COM"이 출판된 지 불과 몇 년 후, 커뮤니티의 관심은 로 옮겨갔습니다.NET. 이 때문에 좋은 COM 교육 자료는 현재와 앞으로도 계속 제한적으로 남아있을 것으로 예상됩니다.

따라서 COM은 고장나지 않고 사용되는 용도에 적합하게 작동합니다(그래서 탐색기는 여전히 COM을 사용합니다).오늘날 해결해야 할 많은 문제에 대해 더 이상 최선의 해결책이 아닙니다.

요약하면:

기본적인 것은 'Essential COM'을 추천합니다.그런 다음, 사용 가능한 많은 좋은 ATL 책을 사용할 수 있으며(여기서는 강력한 선호 사항이 없음), MSDN이나 스택 오버플로와 같은 다른 리소스를 사용하여 사용자에게 특히 관심이 있는 영역을 다루게 됩니다.

망목종의 자원에 의존하는 것을 피하고 싶다면, 웹에서 ATL을 배워보세요.하지만 어떤 책들은 옛날 방식으로 읽을 가치가 있습니다. 그리고 "Essential COM"이 그 중 하나입니다.

행운을 빌어요.

COM, COM+, DCOM은 완전히 다른 세 가지입니다.이 시점에서 COM을 배울 이유는 거의 없고 DCOM을 배울 이유는 거의 없습니다.제가 생각할 수 있는 유일한 이유는 레거시 구성 요소를 유지하거나 통합해야 한다는 것입니다.COM+는 구성 요소의 프로세스 외 호스팅과 분산 트랜잭션 관리와 같은 훌륭한 기능을 제공하기 때문에 여전히 사용됩니다.

COM 작성을 시작하는 가장 좋은 방법은 ATL을 사용하는 것입니다..NET COM+에서 Enterprise Services라고 합니다.

제가 COM에서 가장 잘 아는 책은 돈 박스의 에센셜 COM이고, 팀 이왈드의 COM+ 책도 훌륭합니다.

나는 책 목록을 작성했는데, 그 목록은 다음 순서로 읽혀야 합니다.

  1. Dale Rogerson의 'Inside COM' 이 책이 당신의 첫 번째 책이 될 것입니다.참조 수, 인터페이스, 내가 모르는 것, 컴포넌트, idl, ID 디스패치, 자동화 유형 및 아파트의 기본 사항을 설명합니다.이 책을 보면 구성 요소를 만드는 데 상당한 코드가 필요하고 '릴리즈'를 쉽게 건너뛸 수 있어 리소스가 유출된다는 것을 알 수 있습니다.또한 이 책은 약간의 세부사항이 부족합니다.
  2. 타바레스에서 온 'ATL 인터내셔널'입니다ATL은 클라이언트가 COM 구성 요소를 만드는 데 모두 사용할 수 있도록 도와줍니다.스마트 포인터(예: CComPtr)를 사용하면 요즘 참조 수를 잘못 세는 것이 어렵습니다.ATL은 c++의 구성 요소를 만드는 데에도 도움이 됩니다.유감스럽게도 ATL은 매크로에 많은 기능을 숨기고 I가 알려지지 않은 것을 구현하기 위한 역직관적인 방법을 가지고 있습니다.다른 방법으로는 'Inside ATL'이 있습니다.
  3. 돈 박스의 'Essential COM'.이 책은 자주 언급되지만 좋은 초보 책은 아닙니다.전체적인 그림은 놓쳤지만 세부적인 부분은 훌륭합니다(예: idl의 'size_is'와 'length_is'의 차이).
  4. 'ActiveX와 OLE의 이해: 개발자와 관리자를 위한 가이드'이 책은 IPersist, Istorage, Imoniker 등 난해한 인터페이스를 다루고 있지만 자세히 설명하지는 않습니다.

COM은 다소 오래된 기술이지만, 특히 네이티브 개발자들에게는 여전히 실행 가능합니다.

COM은 셸 확장, 스크립팅 호스트 등과 같은 다양한 윈도우즈 API를 사용하거나 확장하려는 경우에도 유용합니다.

Essential COM(Box)과 ATL Internals(Rector and Sells)가 우수한 소스입니다.효과적인 COM(Box, et al)도 괜찮습니다.

COM의 전체 그림을 정말로 원한다면, 거대한 Inside OLE(Brockschmidt)의 복사본을 받아보세요.

분산형 COM(에든, 에드돈)은 DCOM에서, 인사이드 COM+ 기본 서비스(에든, 에드돈)는 COM+에서 정상적입니다.

심지어 일부 "순수한" C++ 책에도 COM에 대한 비트가 들어 있습니다.Matthew Wilson의 Imperfet C++는 내부에서 작동하는 방식을 확인하는 데 유용한 부분이 있으며, Extended STL 책에는 COM을 STL 컬렉션에 적용하는 방법에 대한 몇 장의 장이 있습니다.

COM 서버를 작성하는 방법에 대해 더 알고 싶다면 ATL에 대해 조사해야 할 것입니다.앞서 언급한 ATL Internals는 필수 사항입니다.겸손하게 들리는 제목에도 불구하고, Beginning ATL COM은 유용한 것들을 가지고 있습니다.

또한 COM과 COM을 비교하는 것이 학습 과정에서 도움이 될 수 있습니다.NET. 그.NET 및 COM 상호 운용성 핸드북은 큰 의미가 있지만 유용한 내용이 포함되어 있습니다.또한, 두 기술의 대조를 돕기 위해 Shared Source CLI Essentials를 확인해 보겠습니다.

HTH

먼저 "Inside COM"으로 시작하여 "Inside DCOM"으로 이동한 후 "Essential COM"을 읽어보면 COM을 파악할 수 있습니다.Inside COM과 Inside DCOM은 모두 Microsoft 출판물입니다.COM/DCOM에 대해 자세히 알고 싶은 사람을 위한 훌륭한 책.

Essential COM은 특히 IDE, 프레임워크 또는 라이브러리를 사용하지 않고 C++의 COM 구성 요소를 구현하거나 사용하기 위한 것입니다.

COM은 애플리케이션 프로그래머로부터 COM 고유의 접착제를 숨기는 등 VB나 델파이에서 사용하기에는 사소한 것입니다.C++에서는 세부 정보를 추상화하는 클래스 라이브러리를 자주 사용합니다.Essential COM은 이러한 세부 사항이 무엇인지 알려줄 것입니다(그리고 그렇게 함으로써 자체 라이브러리/프레임워크를 구현하는 것과 같은 것).

사실, COM에 대해 더 알고 싶다면, 마이크로소프트는 COM과 그것이 어떻게 작동하는지에 대한 책을 출판합니다.http://www.amazon.com/Inside-Microsoft-Programming-Dale-Rogerson/dp/1572313498/ref=sr_1_2?ie=UTF8&s=books&qid=1243029018&sr=8-2

언급URL : https://stackoverflow.com/questions/900123/com-com-dcom-where-to-start