1
COM을 통해 실행중인 응용 프로그램 인스턴스 인 Rational Rhapsody에 액세스하려고합니다. C++/CLI COM 호출을 사용하려고합니다. 잘 Marshal::GetActiveObject("Word.Application")
작품을 사용하여, 800401E3 (사용할 수없는 동작을)Marshal.GetActiveObject가 C++/CLI에서 오류를 throw하지만 C#이 아닙니다.
을하지만 :
rhapsody::RPApplication^ App = safe_cast<rhapsody::RPApplication^>(Marshal::GetActiveObject("Rhapsody.Application"));
는 COM 예외가 발생합니다 : C에서
++ 호출.
rhapsody.RPApplication App = (rhapsody.RPApplication) Marshal.GetActiveObject("Rhapsody.Application")
작품 잘 : gcnew rhapsody::RPApplication()
를 사용하여 새로운 인스턴스 및 C#에서 동일한 코드를 만들기 위해 잘 작동합니다. C++/CLI에서 작동하지 않는 이유는 무엇입니까?
나는 다른 오류를 해결하기 위해 여기에 다른 게시물을 추가 했으므로 추가하려고 시도했지만 아무 것도 변경하지 않았습니다. – Zanson
좋아, 나는 재미로 다시 시도했는데 어떤 이유로 지금은 작동한다. 위어드. – Zanson
예. VB.NET 대신 C++/CLI 래퍼가있는 [Qt ComApp Example] (http://doc.qt.nokia.com/4.7-snapshot/activeqt-comapp.html)이 필요했습니다. – jetimms