Я хочу зарегистрировать мой Dll по определенному пути в реестре, а не по умолчанию путь, который обычно занимает .. Я новичок в Windows и не знаю много об этом. Может ли кто-нибудь сказать мне, что все, что мне нужно упомянуть в моем фрагменте кода, или есть что-нибудь, что можно добавить к нему, чтобы мои dll получили регистры в HKEY_LOCAL_MACHINE.
Почему вы хотите это сделать? COM dll должны быть зарегистрированы в HKEY_CLASSES_ROOT, все остальное не имеет смысла.
Причина в том, что когда некоторым другим компонентам нужно создать экземпляр вашего COM-сервера, они обычно CoCreateInstance
API, который будет искать информацию о классе в кусте HKCR реестра, а не где-то еще. Если вы зарегистрируете свой класс где-то еще, никакой другой компонент не сможет найти его, который был бы таким же, как если бы он вообще не был зарегистрирован.
Вам нужно использовать Функции реестра Win32 API:
RegCreateKeyEx
RegSetValueEx
RegCloseKey
Смотрите также пример кода.
Вам необходимо уточнить, что вы подразумеваете под «регистрация».
COM — это спецификация, и если вы хотите зарегистрировать свой компонент для COM, вы должны следовать спецификации. Это означает HKEY_LOCAL_MACHINE\SOFTWARE\Classes
, Нет смысла регистрировать COM-сервер где-либо еще, потому что ничто его не найдет.
Если вы имеете в виду что-то еще под «зарегистрироваться», пожалуйста, уточните.