我正在尝试通过 COM 访问应用程序 Rational Rhapsody 的运行实例。我正在尝试使用 C++/CLI COM 调用。
从 C++ 调用:
rhapsody::RPApplication^ App = safe_cast<rhapsody::RPApplication^>( Marshal::GetActiveObject("Rhapsody.Application"));
导致 COM 异常:800401E3(操作不可用)
但是,使用Marshal::GetActiveObject("Word.Application")
效果很好。使用gcnew rhapsody::RPApplication()
可以很好地在 C# 中创建一个新实例和相同的代码:
rhapsody.RPApplication App = (rhapsody.RPApplication) Marshal.GetActiveObject("Rhapsody.Application")
工作得很好。任何想法为什么它不适用于 C++/CLI?