C/Visual C - como uso winreg.h en djgpp...

 
Vista:

como uso winreg.h en djgpp...

Publicado por chelo (7 intervenciones) el 28/09/2002 23:21:04
Me podrian decir como usar la libreria winreg.h en djgpp y que comandos usar para compilar un programa que usa esta libreria.
Tengo instalada la utilidad rsxntdj para poder compilar en w32 , pero cuando quiero compilar el programa me da el siguiente mensaje de error:
C:\DJGPP\chelo>gccw32 test5.c
c:\djgpp\tmp\ccsdFjuG.o(.text+0x69):test4.c: undefined reference to `RegCreateKeyExA'
c:\djgpp\tmp\ccsdFjuG.o(.text+0x93):test4.c: undefined reference to `RegSetValueExA'
c:\djgpp\tmp\ccsdFjuG.o(.text+0xa7):test4.c: undefined reference to `RegCloseKey'
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

como uso winreg.h en djgpp...

Publicado por Alejandro (913 intervenciones) el 24/03/2025 18:29:16
Chelo, para usar la biblioteca `winreg.h` en DJGPP y compilar un programa que la utilice, es importante asegurarte de que estás enlazando correctamente las bibliotecas de Windows necesarias. Aquí te dejo una guía paso a paso para hacerlo:

Pasos para usar `winreg.h` en DJGPP



1. Verifica la instalación de RSXNTDJ: Asegúrate de que RSXNTDJ esté correctamente instalado y configurado en tu sistema. Esta utilidad permite compilar programas de Windows utilizando DJGPP.

2. Incluir las cabeceras necesarias: En tu código, asegúrate de incluir las cabeceras adecuadas. Para usar `winreg.h`, debes incluir `windows.h` y `winreg.h` en tu archivo fuente:

1
2
#include <windows.h>
#include <winreg.h>

3. Código de ejemplo: Aquí tienes un ejemplo básico que utiliza funciones de la API de registro de Windows:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <windows.h>
#include <winreg.h>
#include <stdio.h>
 
int main() {
    HKEY hKey;
    LONG result;
 
    // Abrir o crear una clave en el registro
    result = RegCreateKeyExA(HKEY_CURRENT_USER, "Software\\MiAplicacion", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hKey, NULL);
    if (result == ERROR_SUCCESS) {
        printf("Clave creada o abierta exitosamente.\n");
        RegSetValueExA(hKey, "MiValor", 0, REG_SZ, (const BYTE*)"Hola, mundo!", 14);
        RegCloseKey(hKey);
    } else {
        printf("Error al abrir o crear la clave: %ld\n", result);
    }
 
    return 0;
}

4. Compilación: Para compilar tu programa, necesitas asegurarte de enlazar las bibliotecas de Windows. Utiliza el siguiente comando en la línea de comandos:

1
gccw32 -o test5.exe test5.c -luser32 -lkernel32 -ladvapi32

Aquí, `-ladvapi32` es la biblioteca que contiene las funciones de la API de registro, como `RegCreateKeyExA`, `RegSetValueExA` y `RegCloseKey`.

5. Ejecutar el programa: Una vez que hayas compilado el programa, puedes ejecutarlo en un entorno de Windows. Asegúrate de que tienes los permisos necesarios para acceder y modificar el registro.

Solución de problemas



- Errores de enlace: Si sigues recibiendo errores de "undefined reference", asegúrate de que las bibliotecas están correctamente instaladas y que el comando de compilación incluye todas las bibliotecas necesarias.
- Configuración del entorno: Verifica que tu entorno de DJGPP y RSXNTDJ esté correctamente configurado y que las rutas a las bibliotecas de Windows sean accesibles.

Conclusión



Siguiendo estos pasos, deberías poder compilar y ejecutar un programa en C que utilice la biblioteca `winreg.h` en DJGPP con RSXNTDJ.
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