2010-06-02 3 views
5

"전통적인"방법은 레지스트리에 DLL을 등록하는 것입니다."전통적인"COM과 COM + (구성 요소 서비스에서)의 차이점

은> 구성 요소 서비스 -> COM + 응용 프로그램을 mmc- 예정하고 .tlb 파일을 추가하여 최대가 설정하는 다른 방법이있는 것 같습니다.

두 가지 방법을 모두 지원하는 COM 라이브러리가 있습니다. 설치가되면 레지스트리에 COM 구성 요소로 등록되어 제대로 작동합니다. 그러나 구성 요소 서비스 메서드를 사용하여 .tlb 파일을 추가하면 동작이 달라 보이고 오류가 발생하기 시작합니다.

마샬링 및 프로세스 간 개체 전송과 관련이 있다고 생각합니까?

사람은 내 이해를 취소 할 수있는 좋은 자원 날 포인트 (미안 해요, 난 정말 COM 영역에 멍청한 놈이야)?

+0

몇 가지 오류가 있습니까? – N0Alias

+0

다른 메소드'X'를 허용하는'X.Method()'메소드가 있습니다. 이것은'void Method (X another) '와 같은 것을 의미합니다. 이 메서드를 실행하면 "System .__ ComObject를 X로 변환 할 수 없습니다." – kizzx2

답변

9

COM + (구성 요소 서비스)는 즉시 사용할 수있는 많은 인프라를 제공합니다. COM +는 트랜잭션, 보안, 개체 풀링 및 기타 서비스를 제공합니다.

COM +에서 COM 구성 요소를 등록하면 "Out Of Process"가 실행됩니다. 이 모드에서는 COM 서버와 클라이언트 사이에 프록시가 있어야합니다. 이 도움이 http://msdn.microsoft.com/en-us/library/ms685978(VS.85).aspx

희망 : 나는 COM +에 대한 자세한 학습을위한 생각할 수

가장 좋은 장소는 공식 MS 사이트입니다.

+2

COM 구성 요소가 out-proc 될지 여부는 등록 방법에 따라 다릅니다. "서버 응용 프로그램"을 선택하면 out-proc가되지만 "라이브러리 응용 프로그램"을 선택하면 in-proc가됩니다. – sharptooth

+0

그래서 in-proc을 만들면 레지스트리를 등록하고 'CoCreateInstance'를 호출하는 것과 같지 않습니까? – kizzx2

+1

어쨌든 CoCreateInstance()를 사용합니다. COM +가 호출을 가로 채고 out-proc 서버에서 생성하는 것입니다. 나는 COM + 라이브러리 응용 프로그램을 얻지 못한다. 심지어 질문이있다. http://stackoverflow.com/questions/1762823/whats-the-purpose-of-com-library-applications – sharptooth

3

이전 게시물에 동의하십시오.

한 가지 추가 : 실제로 형식 라이브러리 (.tlb 파일) 등록 COM 정상입니다뿐만 아니라,뿐만 아니라 COM +를 위해. 타입 라이브러리는 IDL 컴파일러에 의해 자동 생성됩니다. 인터페이스 및 객체에 대한 설명이 들어 있습니다.

은 그래서 당신은 "수입"어떤 프로젝트에 당신의 COM 구성 요소 및 인터페이스와 객체의 정의를 볼 수 있습니다 할 수 있습니다.

4

COM은 로컬 컴퓨터에서 사용되는 구성 요소 개체 모델이지만 COM +는 Com plus activex 기능입니다. 원격으로 사용할 수 있음을 의미합니다.

COM +는 Microsoft COM (Component Object Model) 및 MTS (Microsoft Transaction Server)의 발전입니다. DCOM : 분산 COM. Microsoft 트랜잭션 서버 : COM 개체 수 있도록 프로토콜은 코드를

MTS를 사용하는 하나에서 다른 컴퓨터에 인스턴스화합니다. MS가 여러 서버에서 트랜잭션을 조정하는 방법.

COM +는 스레드 할당 및 보안과 같이 이전에 프로그래밍해야했던 많은 리소스 관리 작업을 처리합니다. 또한 COM +는 스레드 풀링, 개체 풀링 및 Just-In-Time 개체 활성화를 제공하여 응용 프로그램의 확장 성을 향상시킵니다.

COM +는 Windows 용 분산 응용 프로그램을 개발하는 데 사용할 수 있습니다.

응용 프로그램 프로그래머는 구성 요소를 작성하여 응용 프로그램으로 통합합니다. COM +는 주로 Microsoft Visual C++ 및 Microsoft Visual Basic 개발자 용으로 설계되었습니다.

관련 문제