J'essaie d'accéder à une instance en cours d'exécution d'une application, Rational Rhapsody, via COM. J'essaie d'utiliser les appels COM C++/CLI.
De C++ appelant:Marshal.GetActiveObject renvoie une erreur de C++/CLI mais pas C#
rhapsody::RPApplication^ App = safe_cast<rhapsody::RPApplication^>(Marshal::GetActiveObject("Rhapsody.Application"));
provoque une exception COM: 800401E3 (opération non disponible)
Mais, en utilisant Marshal::GetActiveObject("Word.Application")
fonctionne très bien. L'utilisation gcnew rhapsody::RPApplication()
fonctionne très bien pour faire une nouvelle instance et le même code en C#:
rhapsody.RPApplication App = (rhapsody.RPApplication) Marshal.GetActiveObject("Rhapsody.Application")
fonctionne très bien. Des idées pour lesquelles cela ne fonctionne pas à partir de C++/CLI?
J'ai essayé d'ajouter que, comme un autre post ici l'a corrigé pour la même erreur, mais cela n'a rien changé. – Zanson
Ok, je l'ai encore essayé juste pour m'amuser et pour une raison quelconque cela fonctionne maintenant. Wierd. – Zanson
Yay. J'avais besoin de ceci à faire: [Qt ComApp Exemple] (http://doc.qt.nokia.com/4.7-snapshot/activeqt-comapp.html) avec un wrapper C++/CLI au lieu de VB.NET. – jetimms