Zitat von
Luckie:
Zum registrieren eines
COM-Servers werden immer Administratorenrechte benötigt. Diese kann man mit einem entsprechendem Manifest anfordern.
Mit dem Manifest hat es geklappt.
Frage nur zu meinem Verständnis:
Bisher habe ich versucht über eine
API-Funktion den
COM-Server zu registrieren.
Ob über
API-Funktion oder von Hand "regsvr32 COM_Test.dll", jedesmal konnte ich in der Registrierung die erstellten Einträge unter HKEY_CLASSES_ROOT finden (Vorrausgesetzt man hatte Administrator-Rechte).
Wenn ich das Manifest verwende, muss ich die
DLL nicht über den
COM-Server registrieren (ich habe die "function RegisterServer" auskommentiert). Ich finde auch keine Einträge in der Registrierung.
Wird die
DLL automatisch geladen? Wie funktioniert das?
Mein Manifest:
Delphi-Quellcode:
<?
xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-
com:
asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="2010.4.25.0"
processorArchitecture="X86"
name="Project1"
type="
Win32"/>
<trustInfo xmlns="urn:schemas-microsoft-
com:
asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="
win32"
name="sfFTPLib"
version="1.5.0.0"
language="*"
processorArchitecture="x86"/>
</dependentAssembly>
</dependency>
</assembly>
Zitat von
Luckie:
Gibt es einen Grund, warum du den
COM-Server jedes mal registrieren und de-registrieren willst?
Da es sich um eine Fremd-
DLL handelt möchte ich nur sicherstellen, das immer mit einer aktuellen Version gearbeitet wird.
Durch Änderung der Version ändert sich evtl. auch die Schnittstelle.
Gruss Alois