progid Prog. Class가 있다고 가정하십시오. powershell과 같은 것에서는 이것으로 충분합니다.
$obj = New-Object -COM "Prog.Class"
$obj.method();
하지만 C ++에서는 지원되는 인터페이스를 알아야합니다.
CoCreateInstance(CLSIDFromProgID(...),...,IID_SomeInterface,...)
인터페이스 ID가 아닌 progid 만 알고있는 C ++에서이 문제를 어떻게 해결합니까? 가능한 인터페이스 ID를 얻는 방법이 있습니까? CoCallMethodOnClass (...)와 같은 것을 할 수 있습니까?
Powershell은 IID_IDispatch를 사용하여 IDispatch * 를 얻습니다 . 후기 바인딩을 지원하는 인터페이스는 많은 COM 서버가이를 구현합니다.
C ++는 언어 구문에서 후기 바인딩을 지원하지 않으므로 훨씬 더 고통 스럽습니다. IDispatch :: GetIDsOfNames ()를 호출하여 멤버 이름 "method"를 DispId, IDispatch :: Invoke ()로 변환하여 호출해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다