-2

Dll をレジストリ内の特定のパスに登録したいのですが、通常はデフォルトのパスではありません。Windows を初めて使用するので、あまり知りません。私のコード部分で言及する必要があるすべてのことを教えてもらえますか、または私のdllがHKEY_LOCAL_MACHINEに登録されるように追加できるものはありますか?

4

3 に答える 3

1

なぜそれをしたいのですか?COM dll は HKEY_CLASSES_ROOT に登録する必要があります。それ以外は意味がありません。

その理由は、他のコンポーネントが COM サーバーをインスタンス化する必要がある場合、通常、CoCreateInstanceAPI を呼び出して、レジストリの HKCR ハイブでクラス情報を検索し、他の場所では検索しないためです。クラスを別の場所に登録すると、他のコンポーネントがそれを見つけることができなくなり、まったく登録されていない場合と同じになります。

于 2012-09-14T10:11:13.613 に答える
0

Win32 API レジストリ関数を使用する必要があります。

  1. でキーを作成(存在する場合は開く)RegCreateKeyEx
  2. で値を設定RegSetValueEx
  3. でレジストリキーを閉じますRegCloseKey

サンプルコードも参照してください。

于 2012-09-14T10:51:36.090 に答える
0

「登録」の意味を明確にする必要があります。

COM は仕様です。コンポーネントを COM に登録する場合は、仕様に従う必要があります。つまりHKEY_LOCAL_MACHINE\SOFTWARE\Classes。COM サーバーを他の場所に登録しても意味がありません。

「登録」が別の意味である場合は、明確にしてください。

于 2012-09-14T10:56:06.720 に答える