2012-12-10 3 views
0

COM 개체를 이해하지 못하거나 혼란 스럽습니다. 저는 종종 파이썬에서 VB에서 (Obj = win32com.client.Dispatch('Visum.Visum') 또는 Obj = CreateObject("Excel.Application")) COM 개체를 '생성'하고 '디스패치'합니다. 그건 쉽고 분명하며 모든 것이 잘됩니다. 하지만 방법 : CreateObject 명령을 가) COM 참조를 무엇 VB에서VB에서 COM 개체에 연결

고 혼란

덕분에 (? 파견, COM 객체, 서버 연결 ?? 등록) : VB에서는 관계없이 단지 하나의 방법입니다 반면 파이썬에서 그것은 win32com의 잘 정의, 포괄적 인 라이브러리의 일부 라팔 I2

+1

a) GetObject() 함수를 사용하십시오. b) 아무 의미가 없다. –

답변

2

먼저 도움에 의해로드됩니다. 개인적으로 Don Box의 'Essential COM'은 COM에 대한 최고의 책이라고 생각합니다.그것으로 몇 시간을 보내면 나중에 많은 시간을 절약 할 수 있습니다.

귀하의 질문으로 이동하십시오.

a) VB에서 기존 COM 개체를 검색하려면 GetObject 함수를 호출해야합니다. 이것은 Running Object Table으로 등록 된 COM 개체에서만 작동합니다. Excel이이를 수행하므로 아무런 문제가 없어야합니다.

b) Hans Passant가 정확하게 지적했듯이이 질문은 의미가 없습니다. 프로세스와 COM 개체는 COM 개체를 호스팅한다는 사실을 제외하면 완전히 관련이없는 것입니다. 이것은 '어떤 프로세스가 X 클래스의 인스턴스인지'를 묻는 것과 유사합니다. 그러나 프로세스는 COM 개체 (또는 그 중 다수)를 호스팅 할 수 있습니다. 이 물체는 일시적으로 만 생존 할 수 있습니다. 그래서 거기에서 무엇을 기대합니까? 게다가 많은 COM 클래스가 DLL 내에서 구현되지만 생성 된 인스턴스가 프로세스 내에서 호스팅되는 것은 분명하므로 거기에서 무엇을 기대할 수 있습니까?

0

을 claryfying에 대한 COM 기술은 정말 미안 내가 잠시 동안 사용하지 않았다 뭔가, 일부 정보가 잘못 될 수있는 경우는 (어쨌든, 나는 나와 함께 나의 책 "내부 COM + 기반 서비스"를 가지고있어!입니다)

간단히 말해서,의는 COM 객체의 간단한 정의를 해주지 : 그것은 클래스는 다음과 같은 방법으로 표준 인터페이스 IUnkown 노출하는 표준 DLL에 비해 아무것도 : COM 개체를 소비하는 클라이언트를 등록 :

  • AddRef에가
  • 자료 : 클라이언트 (일반적으로 사용되지 않는 객체가 실행을 중지하지만, 다른 하나는 상주 남아있을 수 있습니다)
  • QueryInterface를 등록 해제하기 : 함수

의 QueryInterface의 주소를 얻기 위해 동적으로 다시 사용 강력하고 (컴파일 타임에 DLL을 알 필요는 없지만) 시간이 많이 소요되는 함수 (후기 바인딩)의 주소를 추적하십시오. 반면, DLL은 시스템에 등록되어 있기 때문에 컴파일시 함수의 주소를 직접 참조 할 수 있습니다 (모든 정보는 레지스트리에 저장됩니다).

새 개체를 생성하거나 실행중인 객체는 RPC (원격 프로 시저 호출)를 통해 수행되며 프록시 역할을로드 및/또는 수행합니다.

COM 객체의 새 인스턴스를 만들려면 CreateObject (VB에서)를 호출합니다. (Co) CreateInstance VC++ (또는 C#?)에서 실행중인 인스턴스를 가져 오려면 GetObject()를 호출 할 수 있습니다.

COM 객체의 목록을 가져 오는 것은 쉽지 않습니다 (이전에는 COM 객체가 DLL이 아닌 다른 것임) : 이는 라이브러리가 주로 주소 공간에로드된다는 것을 의미합니다 액세스가 비공개 인 각 프로세스의 심지어 많은 프로세스 (즉, Excel은 out-of-process COM 개체이므로 응용 프로그램의 주소 공간에 DLL을로드하지 않습니다.)간에 공유되는 개체 인 out-process COM 개체 (프로세스의 반대쪽) 호스트 (rpc.exe 또는 독점 호스트)

희망이 내가 COM에 대한 좋은 소개를 읽고 제안, 서지

모든
관련 문제