ActiveX registrierung



  • Hallo zusammen, ich habe eine Frage bezüglich der Handhabung von ActiveX! Wenn ich meine ActiveX-Komponente geschrieben habe und es liegt so gesehen eine OCX-Datei vor muss ich doch die irgendwie registrieren damit die den anderen Containern sichtbar bzw. bekannt wird!?

    Wie und wo muss dieser Eintrag erfolgen? Verstehen Sie mich bitte nicht falsch, wie ich das unter Borland c++ Builder registrieren kann ist mir bekannt, wenn ich aber einen Installer schreiben möchte, muss ich auf die Hilfe von Borland verzichten und das selber mittels meinen Codes bewerkstelligen.

    Ich hoffe die Fragestellung ist verständlich und mir kann hier jemand helfen.
    *
    Mit freundlichen Grüßen
    coder24h
    *



  • die Funktion DllRegisterServer aus der DLL aufrufen



  • Hey und Danke für diesen Tipp, ich bin aber für jede Information dies Bezüglich dankbar und habe bereits meinen Fragenkoffer aufgemacht 😉

    1. Wenn ich die DllRegisterServer nutzen will ist das wirklich zwingend erforderlich die aus einer DLL aufzurufen?
    2. Wenn ich meine ActiveX erstmal registriert habe möchte ich auch später in der Lage sein die auch später zu entfernen! Womit wird das ermöglicht?
    3. Unter Windows XP sehe ich gerade werden viele OCX-Dateien im System32- Verzeichnis hinterlegt. Ist das üblich, dass andere Softwarehersteller auch unter diesem Verzeichnis eigene OCX-Dateien hinterlegen oder sollte man im eigenen Installationspfad diese Dateien unterbringen?
    **
    Ich bedanke mich jetzt schon mal im Voraus!**



  • regsvr32



  • Jeder COM-Server muss die Funktionen DllRegisterServer und DllUnregisterServer implementieren, in der der Code für die eigene Installation/Deinstallation der COM-Klassen in der Registrierung enthalten ist (unter HKCR/CLSID). Windows befragt dann bei Anforderung der entsprechenden COM-Klasse anhand der ClassID den in der Registrierung eingetragenen COM-Server(Die DLL oder OCX-Datei), die Klasse zur Verfügung zu stellen. Die Klasse ist also durch die ClassID systemweit verfügbar unabhängig vom Speicherort. Bei OCX-Steuerelementen, die auch von Drittprogrammen genutzt werden ist es aber üblich, diese im Windows-Verzeichnis abzulegen, wobei ich diese Methode unschön finde.

    Zu 1. und 2.:

    Wie regsvr32 schon sagte, gibt es im Windows-Verzeichnis das Tool regsvr32.exe. Damit kann man Server registrieren ohne programmtechnisch die Funktion aufrufen zu müssen.

    regsvr32 c:\huhu\control.ocx - Installieren
    regsvr32 -u c:\huhu\control.ocx - Deinstallieren
    


  • Du willst ernsthaft eine ActiveX Komponente programmieren und warst noch nicht mal in der Lage dir diese Grundlagen selbst herauszusuchen?



  • Hallo masterofx32, danke das du dir etwas Zeit genommen hasst um jemanden wie mir zu helfen, denn deine nicht zu knapp ausgefallenen Worte haben mir wirklich sehr geholfen! Ich bereite mich auf mein Abschlussprojekt vor und da ich nebenbei noch anderweitig tätig bin, bleibt mir fast nur noch die Möglichkeit das Ganze am Wochenende umzusetzen. Ich hatte noch keine Zeit gehabt einen Installer für meine Programme einzusetzen und möchte in dem Abschlussprojekt das jetzt nachholen, dafür werde ich den Nullsoft Scriptable Install System scripten.

    Du willst ernsthaft eine ActiveX Komponente programmieren und warst noch nicht mal in der Lage dir diese Grundlagen selbst herauszusuchen?

    Ich weis nicht mehr genau wer diese Worte sagte, aber das solltest du mal durchlesen:

    Lache nicht über die Dummheit der anderen, es ist deine Chance!

    Also wenn du mich als Dumm oder faul hältst, mache was draus und zeige dass du es besser kannst!

    Ich denke alleine schon die Tatsache, dass jemand am Freitagabend nicht mit Flasche Bier in der Kneipe sitzt, sondern zuhause lernt sagt schon alles. Die ActiveX-Komponenten habe ich bereits geschrieben und unter Excel und WinCC erfolgreich getestet, warum es mir hier geht ist deren Registrierung und mit der Hilfe von anderen Forums-Usern ist nichts unmöglich!

    Wenn jemand noch weitere Ergänzungen und etwas Zeit hat, hier ist noch etwas Platz!

    😉



  • lach schrieb:

    Du willst ernsthaft eine ActiveX Komponente programmieren und warst noch nicht mal in der Lage dir diese Grundlagen selbst herauszusuchen?

    Man verlangt ja nicht, dass man sich gleich mit dem kompletten Gebiet der COM/ActiveX-Programmierung auseinandersetzt, um zum Beispiel "auf die Schnelle" ein ActiveX-Steuerelement zu erstellen. Manchmal will man einfach nur den MFC-Assistenten verwenden oder ein vorhandenes Grundgerüst einfach nutzen, ohne gleich alles perfekt zu durchschauen. Man kann jedenfalls zu dem Thema ruhig mal seine Foren-Besserwissermentalität etwas zurückstellen. ⚠

    @coder24

    Du musst jedenfalls zur Installation deiner DLL in deiner DllRegisterServer-Funktion das Eintragen in der Registrierung implementieren. Hast du den MFC-Anwendungsassistenten zum Erstellen deines Projektes verwendet, so ist eine Standardregistrierung bereits implementiert und du musst dich nicht mehr darum kümmern (Wenn du das Steuerelement in Excel testen konntest, muss die Registrierung in der Registrierung 🙂 ja bereits geklappt haben) In dem Fall musst du dem Nullsoft Installer nur mitteilen, dass er dein Steuerelement registrieren soll und dann ruft dieser die DllRegisterServer-Funktion auf.

    MfG, ein Freitagabend-Programmierer 😃



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten