C/Visual C - Registro de DLL compartidas.

 
Vista:

Registro de DLL compartidas.

Publicado por ernesto (6 intervenciones) el 02/07/2002 17:19:58
Estoy realizando un instalador en C, usando archivos INF. El ejemplo que me da el proveedor dice que puedo registrar una DLL compartida por medio de
HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs,%50%\Compartida.dll,1,01,00,00,00

En efecto me crea la entrada en el registro, pero no realiza la cuenta correcta de la DLL. Hay alguien que sepa como definir de forma correcta la entrada para el registro? He buscado en MSDN, pero aun no encuentro algo de utilidad.
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Registro correcto de DLL compartida en archivos INF

Publicado por Alejandro (913 intervenciones) el 06/03/2025 17:16:44
Para registrar correctamente una DLL compartida en el registro de Windows utilizando un archivo INF, es importante asegurarse de que la entrada se configure adecuadamente. La clave `HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs` se utiliza para llevar un conteo de las DLLs compartidas, y el valor que se establece debe ser correcto para que Windows pueda realizar un seguimiento adecuado.

Ejemplo de entrada en el registro



La entrada que mencionas parece estar en el formato correcto, pero aquí hay un ejemplo más detallado de cómo debería verse en un archivo INF:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Version]
Signature="$WINDOWS NT$"
Class=MyClass
ClassGuid={YOUR-CLASS-GUID}
Provider=%ProviderName%
DriverVer=01/01/2025,1.0.0.0
 
[DefaultInstall]
CopyFiles=MyFiles
AddReg=AddRegSection
 
[MyFiles]
Compartida.dll
 
[AddRegSection]
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs","%50%\Compartida.dll",0x00010001,1

Desglose de la entrada



- HKLM: Indica que la entrada se registrará en la clave de registro de "HKEY_LOCAL_MACHINE".
- SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs: Es la ruta donde se registran las DLLs compartidas.
- "%50%\Compartida.dll": Este es el nombre de la DLL que estás registrando. Asegúrate de que `%50%` esté definido en la sección de `Strings` de tu archivo INF.
- 0x00010001: Este es el tipo de valor que se está estableciendo. `0x00010001` indica que es un valor DWORD.
- 1: Este es el conteo inicial de la DLL. Asegúrate de que este valor se incremente correctamente cada vez que se registre la DLL.

Consideraciones adicionales



1. Verifica la DLL: Asegúrate de que la DLL que estás registrando realmente se copie en la ubicación correcta y que no haya problemas de permisos que impidan su acceso.
2. Reiniciar el sistema: A veces, los cambios en el registro pueden no reflejarse hasta que se reinicie el sistema.
3. Herramientas de registro: Utiliza herramientas como `regedit` para verificar manualmente que la entrada se haya creado correctamente y que el conteo sea el esperado.

Conclusión



Si sigues estos pasos y aseguras que la entrada en el registro esté correctamente configurada, deberías poder registrar la DLL compartida sin problemas. Si continúas teniendo dificultades, revisa los permisos de la DLL y asegúrate de que no haya conflictos con otras entradas en el registro. ¡Buena suerte con tu instalador, Ernesto!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar