Ich habe eine Anwendung geschrieben in C++ und MFC (VS 2008 SP1), die auf Windows Mobile 6.1 ausgeführt wird. Jetzt muss ich Funktionalitäten in diese Anwendung integrieren, die nur durch eine .NET-Bibliothek von einem Drittanbieter verfügbar ist.COM Interop auf Windows Mobile 6
Meine Idee war, meine eigene Wrapper/Fassade .NET-Assembly, um diese NET-Bibliothek zu erstellen, die die Funktionen aussetzt ich für mein Projekt benötigen und diese Anordnung COM-sichtbar für mein C++/MFC-Projekt zu machen.
Beim Einrichten eines Projekts in VS 2008 für diese Wrapper-Bibliothek (C#, "Smart Device" -Projekttyp, Typ "Klassenbibliothek", Ziel Framework .NET 2.0 (oder 3.5), Zielplattform "Windows Mobile 6 Professional SDK ") Ich habe bemerkt, dass die Optionen in den Projekteigenschaften die Baugruppe COM-sichtbar und für COM-Interop sind deaktiviert (in den Dialogmasken in VS ausgegraut) zu machen.
Fragen (Wenn ich eine "normale" (nicht für Smart Device) Klassenbibliotheksprojekt für framework 2.0 die Optionen stehen zur Verfügung erstellen.):
- 1) Ist COM-Interop unterstützt auf Windows Mobile überhaupt?
- 2) Wenn ja, ist diese spezielle Richtung von COM-Interop Ich brauche (machen .NET-Assemblys COM-sichtbar für native Anwendungen) auf Windows Mobile unterstützt?
- 3) Wenn ja, mache ich etwas falsch, indem ich das Projekt aufstelle?
- 4) Verfüge ich über andere Optionen, um das im ersten Absatz beschriebene Problem zu lösen?
Vielen Dank für Hilfe im Voraus!
Nicht so sicher, was hier vor sich geht, das Attribut [ComVisible] wird auf CF unterstützt. Das 'Registrieren für COM-Interop' ist deaktiviert, macht sehr viel Sinn, es muss auf dem Gerät gemacht werden, nicht auf Ihrem Dev-Rechner. Überprüfen Sie, ob CF das erforderliche Tool Regasm.exe enthält. –
Ja, ich habe auf MSDN gesehen, dass [ComVisible] unterstützt wird. Ich kann auch ComVisible in AssemblyInfo.cs in meinem Projekt auf true setzen (und kompilieren, ohne Fehler zu bekommen). Das ist verwirrend. Dieser Artikel (http://msdn.microsoft.com/en-us/library/kfzsfkz3%28v=VS.90%29.aspx) besagt: "Verwenden eines Assembly-Registrierungstools wie Regasm.exe für COM-Clients zu Verwende eine verwaltete Komponente als eine COM-Klasse [wird nicht in CF unterstützt] "- unter anderen nicht unterstützten Funktionen und bestätige schließlich die Antwort von ctacke unten. – Slauma