none
ActiveX dynamisch in Form erstellen RRS feed

  • Frage

  • Hi,

    ich möchte ein ActiveX in ein Formular packen. Das ActiveX (mit UI) wird in 32 und 64 Bit zur Verfügung stehen.

    Meine Anwendung wird ebenfalls als 32 bzw. 64 Bit Prozess laufen, d.h. ich muss dafür sorgen, dass die richtige Version geladen und in meinem Formular verwendet wird.

    Wenn ich es richtig verstehe, darf ich im Visual Studio Designer nicht eine bestimmte Version (32 oder 64 Bit) auf das Formular ziehen, da mein Programm mit der spezifischen Version des ActiveX kompiliert ist.

    Oder kann ich ohne Probleme das ActiveX als 32-Bit auf mein C# Formular ziehen und zur Laufzeit wird automatisch anhand der Bitness meines Prozesses geprüft, welche Version (32 oder 64 Bit) des ActiveX genutzt werden soll?

    Viele Grüße,

    Christian.

    Mittwoch, 14. März 2012 14:56

Antworten

  • Hi Marcel,

    vielen Dank für Deine Hilfe!

    Meine Lösung:

    class HostFuerMeinActiveX : AxHost
    {
            public HostFuerMeinActiveX() : base("{FCD44380-0000-1111-1111-123456789012}"){}
    }

    In der Form Klasse:

    var ax = new HostFuerMeinActiveX();
    this.Controls.Add(ax);

    Grüße,
    Christian.


    • Bearbeitet Christian315 Donnerstag, 15. März 2012 09:39
    • Als Antwort markiert Christian315 Donnerstag, 15. März 2012 09:39
    Donnerstag, 15. März 2012 09:14

Alle Antworten

  • Hallo Christian,

    Erstelle die Komponenten über späte Bindung wenn möglich. Die COM-Infrastruktur kümmert sich um die richtige Bitigkeit wenn beide Versionen korrekt registriert sind.

    Best Practices for WOW64 (Word-Dokument)
    http://msdn.microsoft.com/en-us/windows/hardware/gg463051

    Gruß
    Marcel

    Mittwoch, 14. März 2012 16:46
    Moderator
  • Hi Marcel,

    vielen Dank für Deine Hilfe!

    Meine Lösung:

    class HostFuerMeinActiveX : AxHost
    {
            public HostFuerMeinActiveX() : base("{FCD44380-0000-1111-1111-123456789012}"){}
    }

    In der Form Klasse:

    var ax = new HostFuerMeinActiveX();
    this.Controls.Add(ax);

    Grüße,
    Christian.


    • Bearbeitet Christian315 Donnerstag, 15. März 2012 09:39
    • Als Antwort markiert Christian315 Donnerstag, 15. März 2012 09:39
    Donnerstag, 15. März 2012 09:14