2010-09-28 9 views
5

In der .rgs-Datei gibt es einige Registrierungsinformationen, und ich möchte wissen, wie die Info in .rgs-Datei in Regetry hinzugefügt?Wie funktioniert die .RGS-Datei

ich ein Projekt AAA haben, und es wird die Datei AAA.DLL, und es ist eine Datei xxx.rgs, die enthält die Registrierungsinformationen und die AAA.DLL gebaut erzeugen, dann wird es auf einer anderen Maschine B eingesetzt werden, so weiß ich nicht, wie die Registrierungsinformationen auf Maschine B hinzugefügt werden können, brauche ich Register AAA.dll mit dem Befehl regsvr32?

Antwort

6

In der Regel ruft Ihr Code CComModule::UpdateRegistryFromResource() auf, der wiederum die Kontrolle an einen speziellen in ATL implementierten Mechanismus übergibt, der die Ressource verarbeitet, die durch das Einbetten der .rgs-Datei in das Modul erstellt wurde und die Registrierung bearbeitet. ATL kommt mit Quellen, so dass Sie einfach lesen können, wie es gemacht wird.

+2

Auch ist es lloks wie die Verwendung von ATL ist die einzige Möglichkeit, .rgs-Dateien zu verwenden: http://StackOverflow.com/Questions/1594283/is-there-a-Document-on-Rgs-files-syntax – sharptooth

+0

Ich habe ein Projekt AAA und es wird die Datei AAA.DLL generieren, und es gibt eine Datei xxx.rgs, die die Registrierungsinformationen enthält, und die AAA.DLL wird gebaut, dann wird es in einer anderen Maschine B installiert werden, so frage ich mich, wie die Registry-Info hinzugefügt in Maschine B, brauche ich registrieren AAA.dll mit Regsvr32 Befehl? –

+3

@Carlos_Liu: Ihr DLL-Projekt wird normalerweise eine RC-Datei enthalten, die einen Verweis auf diese .rgs-Datei enthalten wird. Wenn die DLL kompiliert wird, wird der Inhalt der .rgs-Datei als Ressource abgelegt. Später rufen Sie regsvr32 auf, es lädt die DLL, führt 'DllRegisterServer()' aus, die ihrerseits 'CComModule :: UpdateRegistryFromResource()' aufruft, die den Inhalt der .rgs-Datei aus den Ressourcen dieser DLL lädt, analysiert und die Registrierung ändert. – sharptooth