Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi ActiveX-DLL - Side-by-Side-Verwendung (https://www.delphipraxis.net/206283-activex-dll-side-side-verwendung.html)

bernau 6. Dez 2020 22:28

ActiveX-DLL - Side-by-Side-Verwendung
 
Das Thema hatte ich letztes Jahr in dem Thread Muss ein ActiveX registriert sein? mal angesprochen. Leider konnte ich aus zeitlichen Gründen das nicht weiter verfolgen. Aber ich muss es jetzt noch mal aufwärmen.

Also es wird wohl funktionieren, da "Der schönen Günther" in seinem Thread DLL Side-by-side registration & redirection es wohl erfolgreich durchgeführt hat.

Ich bin jetzt das ganze WE damit beschäftigt, aber es will leider nicht funktionieren.

Also noch mal von vorne. Ich habe eine DLL, die ich mit "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Reg Asm.exe ITK_SDC.dll" registriere. Im Gegensatz zu meinen früheren Post funktioniert das mit regsrv32.exe nicht.

Da ich dafür Adminrechte benötige und die Anwender des öfteren keinen Adminzugang haben, würde ich gerne auf die Registrierung verzichten.

Also alles was ich bisher herausgefunden habe, ist die Erweiterung des Manifestes. Nun muss ich gestehen, dass ich mit Manifesten nie etwas zu tun hatte und für mich das richtiges Neuland ist. Also einfach mal ausprobiert.


So habe ich folgendes dem Manifest zugefügt:

Code:
<file name="ITK_SDC.dll">
    <comClass
      clsid="{952EF07E-3903-3D6B-B208-931BF59033FC}"
      tlbid="{F875C7B0-8B66-4724-8CDD-9DBE929119F0}"
      progid="ITK_SDC.ShapeDataConverter"
      description="ITK_SDC.ShapeDataConverter"
      threadingModel="both"></comClass>
    <typelib
      tlbid="{F875C7B0-8B66-4724-8CDD-9DBE929119F0}"
      version="1.2"
      helpdir=""></typelib>
  </file>
Dieser codeschnipsel bewirkt zumindest etwas. Den wenn ich diesen nicht in der Manifestdatei habe, dann kommt diese Fehlermeldung:

Zitat:

Klasse nicht registriert, ClassID: {952EF07E-3903-3D6B-B208-931BF59033FC}

Wenn ich den Codeschnipsel drin habe, dann erhalte ich folgende Meldung:

Zitat:

Fehler in der DLL, ClassID: {952EF07E-3903-3D6B-B208-931BF59033FC}

Das alles ist richtig nervig, denn eigendlich benötige ich nur eine popelige Funktion aus dieser DLL. Und dafür der ganze Aufwand. :-(

Habt jemand von den Manifestexperten eine Idee?

Der schöne Günther 8. Dez 2020 07:14

AW: ActiveX-DLL - Side-by-Side-Verwendung
 
RegAsm.exe kannte ich jetzt nicht, vielleicht sind noch ein paar Aufrufe von dem Ding interessant?
https://docs.microsoft.com/de-de/dot...istration-tool

Auch: Die ganzen Side-by-Side-Fehler werden, ich meine zumindest teilweise, im Windows Event-Viewer hinterlegt. Detailliert eintauchen kann man mit sxstrace

bernau 8. Dez 2020 10:37

AW: ActiveX-DLL - Side-by-Side-Verwendung
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1478709)
Auch: Die ganzen Side-by-Side-Fehler werden, ich meine zumindest teilweise, im Windows Event-Viewer hinterlegt. Detailliert eintauchen kann man mit sxstrace

Das Tool habe ich mal getestet. Es zeigt mir allerdings keinen Fehler an. Wenn ich im Manifest bewusst einen Tippfehler einschleuse, dann zeigt mir dieses Tool den entsprechenden Tippfehler an.

Also ganz falsch werde ich dann wohl mit meinem Manifest nicht liegen. :-D

Nützt mir nur nichts. :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz