Función GetProfileStringA (winbase.h)

Recupera la cadena asociada a una clave en la sección especificada del archivo Win.ini.

Nota Esta función solo se proporciona para la compatibilidad con aplicaciones basadas en Windows de 16 bits, por lo que no se debe llamar a esta función desde el código del servidor. Las aplicaciones deben almacenar información de inicialización en el Registro.
 

Sintaxis

DWORD GetProfileStringA(
  [in]  LPCSTR lpAppName,
  [in]  LPCSTR lpKeyName,
  [in]  LPCSTR lpDefault,
  [out] LPSTR  lpReturnedString,
  [in]  DWORD  nSize
);

Parámetros

[in] lpAppName

Nombre de la sección que contiene la clave. Si este parámetro es NULL, la función copia todos los nombres de sección del archivo en el búfer proporcionado.

[in] lpKeyName

Nombre de la clave cuya cadena asociada se va a recuperar. Si este parámetro es NULL, la función copia todas las claves de la sección especificada en el búfer proporcionado. Cada cadena va seguida de un carácter NULL y la cadena final va seguida de un segundo carácter NULO .

[in] lpDefault

Cadena predeterminada. Si no se encuentra la clave lpKeyName en el archivo de inicialización, GetProfileString copia la cadena predeterminada en el búfer lpReturnedString . Si este parámetro es NULL, el valor predeterminado es una cadena vacía, "".

Evite especificar una cadena predeterminada con caracteres en blanco finales. La función inserta un carácter NULL en el búfer lpReturnedString para quitar los espacios en blanco finales.

[out] lpReturnedString

Puntero a un búfer que recibe la cadena de caracteres.

[in] nSize

Tamaño del búfer al que apunta el parámetro lpReturnedString , en caracteres.

Valor devuelto

El valor devuelto es el número de caracteres copiados en el búfer, no incluido el carácter de terminación null.

Si ni lpAppName ni lpKeyName son NULL y el búfer de destino proporcionado es demasiado pequeño para contener la cadena solicitada, la cadena se trunca y va seguida de un carácter NULL , y el valor devuelto es igual a nSize menos uno.

Si lpAppName o lpKeyName es NULL y el búfer de destino proporcionado es demasiado pequeño para contener todas las cadenas, la última cadena se trunca y va seguida de dos caracteres NULL . En este caso, el valor devuelto es igual a nSize menos dos.

Comentarios

Si la cadena asociada al parámetro lpKeyName se incluye entre comillas simples o dobles, las marcas se descartan cuando la función GetProfileString devuelve la cadena.

La función GetProfileString no distingue mayúsculas de minúsculas; las cadenas pueden contener una combinación de letras mayúsculas y minúsculas.

Una sección del archivo Win.ini debe tener el siguiente formato:

[section]
key=string
      .
      .
      .

Una aplicación puede usar la función GetPrivateProfileString para recuperar una cadena de un archivo de inicialización especificado.

El parámetro lpDefault debe apuntar a una cadena válida, incluso si la cadena está vacía (es decir, incluso si su primer carácter es un carácter nulo ).

Windows Server 2003 y Windows XP/2000: Las llamadas a funciones de perfil se pueden asignar al registro en lugar de a los archivos de inicialización. Esta asignación se produce cuando el archivo de inicialización y la sección se especifican en el Registro con las siguientes claves:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Currentversion\IniFileMapping

Cuando se ha asignado la operación, la función GetProfileString recupera información del Registro, no del archivo de inicialización; el cambio en la ubicación de almacenamiento no tiene ningún efecto en el comportamiento de la función.

Las funciones de perfil usan los pasos siguientes para buscar información de inicialización:

  1. Busque en el Registro el nombre del archivo de inicialización en la clave IniFileMapping .
  2. Busque el nombre de sección especificado por lpAppName. Se trata de un valor con nombre bajo la clave que tiene el nombre del archivo de inicialización, o una subclave con este nombre, o bien el nombre no existirá como un valor o subclave.
  3. Si el nombre de sección especificado por lpAppName es un valor con nombre, ese valor especifica dónde en el registro encontrará las claves de la sección.
  4. Si el nombre de sección especificado por lpAppName es una subclave, los valores con nombre de esa subclave especifican dónde en el registro encontrará las claves de la sección. Si la clave que está buscando no existe como un valor con nombre, habrá un valor sin nombre (mostrado como <Sin nombre>) que especifique la ubicación predeterminada en el registro donde encontrará la clave.
  5. Si el nombre de sección especificado por lpAppName no existe como un valor con nombre o como una subclave, habrá un valor sin nombre (mostrado como <Sin nombre>) que especifique la ubicación predeterminada en el registro donde encontrará las claves de la sección.
  6. Si no hay ninguna subclave o entrada para el nombre de sección, busque el archivo de inicialización real en el disco y lea su contenido.
Al examinar los valores del registro que especifican otras ubicaciones del Registro, hay varios prefijos que cambian el comportamiento de la asignación de archivos .ini:
  • ! : este carácter obliga a todas las escrituras a ir tanto al Registro como al archivo .ini en el disco.
  • # : este carácter hace que el valor del Registro se establezca en el valor del archivo de .ini de Windows 3.1 cuando un nuevo usuario inicia sesión por primera vez después de la instalación.
  • @ : este carácter impide que las lecturas vayan al archivo .ini en el disco si los datos solicitados no se encuentran en el registro.
  • USR: : este prefijo significa HKEY_CURRENT_USER y el texto después del prefijo es relativo a esa clave.
  • SYS: : este prefijo significa HKEY_LOCAL_MACHINE\SOFTWAREy el texto después del prefijo es relativo a esa clave.

Nota

El encabezado winbase.h define GetProfileString como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winbase.h (incluya Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

GetPrivateProfileString

WriteProfileString