COM サーバーを登録するには、昇格モードで次のように実行します。
regsvr32.exe com.dll
ユーザーごとの登録を実行するには、ユーザー アカウントで実行します。
regsvr32.exe /n /i:user com.dll
regsvr32.exe は次のパラメーターをサポートします。
/u - Unregister server
/i - Call DllInstall passing it an optional [cmdline]; when used with /u calls dll uninstall
/n - do not call DllRegisterServer; this option must be used with /i
/s – Silent; display no message boxes (added with Windows XP and Windows Vista)
Delphi で COM サーバーを作成すると、次のメソッドがエクスポートされました。
exports
DllGetClassObject,
DllCanUnloadNow,
DllRegisterServer,
DllUnregisterServer,
DllInstall;
これらが起こることに気づきました:
- 「regsvr32.exe com.dll」は DllRegisterServer を呼び出します。
- 「regsvr32.exe /u com.dll」は DllUnregisterServer を呼び出します。
- "regsvr32.exe /n /i:user com.dll" は DllInstall を呼び出します。
- "regsvr32.exe /u /n /i:user com.dll" は DllInstall を呼び出します。
パラメータ /n と /i、および DllUnregisterServer と DllInstall と混同しています。違いはありますか?
また、「/u /n /i:user」が Dllinstall を呼び出すのはなぜですか? 「HKEY_CURRENT_USER\Software\Classes」の対応するレジストリ エントリが削除されていることに気付きました。