Bestimmen Sie, ob eine COM ein In-Proc oder LocalServer ist

8

Ich habe eine Anwendung, die eine COM-Bibliothek verwenden, nur fragen, wie kann ich wissen, ob diese Anwendung diese COM-Bibliothek als LocalServer oder In-Proc verwenden?

Ich habe mir den Code angesehen, der auf diese Weise erstellt wurde:

%Vor%     
Budi Mulyawan 26.03.2013, 00:54
quelle

3 Antworten

1

Es hängt teilweise davon ab, welchen Ausführungskontext Sie beim Erstellen Ihres Objekts angeben. Weitere Informationen finden Sie hier: Ссылка

Sie können die Klassen-ID für Ihre Komponente in der Registrierung nachsehen und prüfen, ob sie einen LocalServer-Unterschlüssel enthält. Also in Ihrem Fall würden Sie suchen:

%Vor%

Wenn es sich um eine In-Proc COM-Komponente handelt, wird stattdessen der folgende Schlüssel verwendet:

%Vor%

Lesen Sie diese Dokumentation für weitere Details: Ссылка

    
Peter R 06.04.2013 14:35
quelle
1

Es kann auf verschiedene Arten herausgefunden werden

  1. Wenn Sie sich den Code ansehen, prüfen Sie, welcher Klassenkontext beim Aufruf von " CreateInstance " oder " CoCreateInstance " (CLSCTX_INPROC_XXXX) übergeben wird DLL, die in den Prozessbereich der aufrufenden Anwendungen geladen wird CLSCTX_LOCAL_SERVER, CLSCTX_REMOTE_SERVER - dann wird der COM-Server als separater Prozess ausgeführt Es gibt einige #defines, die ein oder mehrere Flags kombinieren. Einfach googlen)

    ITEmulationPtr.CreateInstance(uuid(TEmulation), 0, CLSCTX_XXX)

  2. Wenn Sie Zugriff auf den Computer haben, auf dem die COM-Komponente installiert ist, können Sie die Schritte ausführen, die Peter in obiger Antwort

  3. angegeben hat
MLS 05.07.2013 06:47
quelle
0
  1. Führen Sie Ihre App aus und stellen Sie sicher, dass sie das COM-Objekt lädt (der Code hat den in Ihrer Frage angezeigten Teil erreicht)
  2. Öffnen Sie den Process Explorer (holen Sie ihn von Microsoft, falls Sie ihn noch nicht haben)
  3. Suchen Sie mit dem Process Explorer nach dem DLL-Namen, wenn er sich in Ihrer EXE befindet, dann ist er in-proc, andernfalls nicht.
Mahmoud Fayez 26.03.2013 02:58
quelle

Tags und Links