Compartir por


Administrar símbolos

Cuando se crea un recurso u objeto de recurso, el entorno de desarrollo le asigna un nombre de símbolo predeterminado, por ejemplo, IDD_DIALOG1. Puede usar la ventana Propiedades para cambiar el nombre del símbolo predeterminado o para cambiar el nombre de cualquier símbolo ya asociado a un recurso.

En los símbolos asociados a un único recurso, también puede usar la ventana Propiedades para cambiar el valor de símbolo. Puede usar el cuadro de diálogo Símbolos de recursos para cambiar el valor de los símbolos que no estén asignados a un recurso.

Normalmente, todas las definiciones de símbolos se guardan en Resource.h. Sin embargo, puede que necesite cambiar este nombre de archivo de inclusión para, por ejemplo, poder trabajar con más de un archivo de recursos en el mismo directorio.

Nota:

Si el proyecto aún no contiene un archivo .rc, consulte Creación de recursos.

Restricciones de los nombres de símbolo

Las restricciones en los nombres de símbolos son las siguientes:

  • Todos los símbolos deben ser únicos dentro del ámbito de la aplicación para evitar definiciones de símbolos en conflicto en los archivos de encabezado.

  • Los caracteres válidos en un nombre de símbolo son A-z, a-z, 0-9 y caracteres de subrayado (_).

  • Los nombres de símbolo no pueden empezar por un número y se limitan a 247 caracteres.

  • Los nombres de símbolo no pueden contener espacios.

  • Los nombres de símbolo no distinguen entre mayúsculas y minúsculas, pero se conservan las mayúsculas o minúsculas de la primera definición de símbolos.

    El compilador/editor de recursos y los programas de C++ usan el archivo de encabezado que define los símbolos para hacer referencia a los recursos definidos en un archivo de recursos. Cuando dos nombres de símbolo difieren únicamente en sus mayúsculas o minúsculas, el programa de C++ verá dos símbolos distintos, mientras que el compilador/editor de recursos verá dos nombres se remiten al mismo símbolo.

Nota:

Si no respeta el esquema de nombre de símbolo estándar (ID*_[palabra clave]) descrito aquí y el nombre del símbolo resulta ser el mismo que una palabra clave conocida por el compilador de script de recursos, cuando trate de generar el archivo de script de recursos, se producirá un error aparentemente aleatorio difícil de diagnosticar. Para evitar esto, aténgase al esquema de nomenclatura estándar.

Los nombres de símbolo tienen prefijos descriptivos que indican el tipo de recurso u objeto que representan. Estos prefijos descriptivos comienzan por el identificador de combinación de texto. La biblioteca de Microsoft Foundation Class (MFC) usa las convenciones de nomenclatura de símbolo que se recogen en la tabla siguiente:

Category Prefijo Usar
Recursos IDR_, IDD_, IDC_, IDI_, IDB_ Acelerador o menú (y recursos asociados o personalizados), cuadro de diálogo, cursor, icono, mapa de bits
Elementos de menú ID_ Elemento de menú
Comandos ID_ Get-Help
Controles y ventanas secundarias IDC_ Control
Cadenas IDS_ Cadena en la tabla de cadenas
MFC AFX_ Reservado para símbolos de MFC predefinidos

Para cambiar un nombre de símbolo (ID)

  1. En Vista de recursos, seleccione el recurso.

  2. En la ventana Propiedades, escriba un nombre de símbolo nuevo o seleccione uno en la lista de símbolos existentes, en el cuadro ID.

    Si escribe un nombre de símbolo nuevo, se le asigna automáticamente un valor.

Nota:

Puede usar el cuadro de diálogo Símbolos de recursos para cambiar los nombres de los símbolos que no estén asignados a un recurso.

Restricciones de los valores de símbolo

Un valor de símbolo puede ser cualquier entero expresado de la forma normal para las directivas de preprocesador#define. A continuación se muestran algunos ejemplos de valores de símbolo:

18
4001
0x0012
-3456

Los valores de símbolo de recursos (aceleradores, mapas de bits, cursores, cuadros de diálogo, iconos, menús, tablas de cadenas e información de versión) deben ser números decimales comprendidos en el intervalo de 0 a 32 767, pero no pueden ser hexadecimales. Los valores de símbolo de partes de recursos, como los controles de cuadro de diálogo o las cadenas individuales de la tabla de cadenas, pueden ir de 0 a 65.534 o de -32.768 a 32.767. Para obtener más información sobre los intervalos numéricos, consulte TN023: Recursos de MFC estándar.

Los símbolos de recursos son números de 16 bits. Puede escribirlos con o sin signo, pero se usan internamente como enteros sin signo, por lo que los números negativos se convertirán en su valor positivo correspondiente.

A continuación se muestran algunas limitaciones de los valores de símbolo:

  • El entorno de desarrollo de Visual Studio y MFC usan algunos intervalos numéricos para fines especiales. MFC se reserva todos los números con el bit más significativo establecido (de -32.768 a -1 o de 32.768 a 65.534, en función del signo).

  • No se puede definir un valor de símbolo mediante otras cadenas de símbolo. Por ejemplo, no se admite la siguiente definición de símbolo:

    #define IDC_MYEDIT  IDC_OTHEREDIT  //not supported
    
  • No se pueden usar macros de preprocesador con argumentos como definiciones de valor. El ejemplo siguiente no es una expresión válida, independientemente de cómo se evalúe ID en tiempo de compilación:

    #define   IDD_ABOUT  ID(7) //not supported
    
  • La aplicación puede tener un archivo que contenga símbolos definidos con expresiones.

Para cambiar un valor de símbolo

  1. En Vista de recursos, seleccione el recurso.

  2. En la ventana Propiedades, escriba el nombre del símbolo seguido de un signo igual y un número entero en el cuadro ID, por ejemplo:

    IDC_EDITNAME=5100
    

    El nuevo valor se almacena en el archivo de encabezado de símbolos la próxima vez que guarde el proyecto. En el cuadro ID solo está visible el nombre del símbolo; el signo igual y el valor no se muestran después de su validación.

Cambio o eliminación de símbolos

Mientras esté en el cuadro de diálogo Símbolos de recursos, podrá editar o eliminar símbolos existentes que todavía no estén asignados a un recurso o a un objeto.

Para cambiar un símbolo sin asignar

  1. En el cuadro Nombre, seleccione el símbolo que está sin asignar y seleccione Cambiar.

  2. Edite el nombre o el valor del símbolo en los cuadros suministrados en el cuadro de diálogo Cambiar símbolo.

Nota:

Para cambiar un símbolo que está asignado a un recurso u objeto, debe usar el editor de recursos o la ventana Propiedades.

Para eliminar un símbolo sin asignar (sin usar)

En el cuadro de diálogo Símbolos de recursos, seleccione el símbolo que quiere eliminar y elija Eliminar.

Nota:

Antes de eliminar un símbolo sin usar en un archivo de recursos, asegúrese de que no se usa en ninguna otra parte del programa o en archivos de recursos incluidos en tiempo de compilación.

Inclusión de símbolos

La primera vez que el entorno de desarrollo lee un archivo de recursos creado por otra aplicación, marca todos los archivos de encabezado incluidos como de solo lectura. Aun así, puede usar el cuadro de diálogo Archivos de inclusión de recursos para agregar archivos adicionales de encabezado de símbolos de solo lectura.

Tal vez le interese usar definiciones de símbolos de solo lectura para los archivos de símbolos que desea compartir entre varios proyectos.

También puede usar los archivos de símbolos incluidos cuando dispone de recursos existentes con definiciones de símbolos que usan expresiones en lugar de enteros sencillos para definir el valor de símbolo. Por ejemplo:

#define   IDC_CONTROL1 2100
#define   IDC_CONTROL2 (IDC_CONTROL1+1)

El entorno interpreta correctamente estos símbolos calculados siempre y cuando:

  • Los símbolos calculados se coloquen en un archivo de símbolos de solo lectura.

  • El archivo de recursos contenga recursos a los que ya están asignados estos símbolos calculados.

  • Se espere una expresión numérica.

Nota:

Si se espera una cadena o una expresión numérica, la expresión no se evalúa.

Para incluir símbolos compartidos (de solo lectura) en el archivo de recursos

  1. En Vista de recursos, haga clic con el botón derecho en el archivo .rc y seleccione Archivos de inclusión de recursos.

  2. En el cuadro Directivas de símbolos de solo lectura, use la directiva de compilador #include para especificar el archivo donde quiere que se conserven los símbolos de solo lectura.

    No llame al archivo Resource.h, ya que es el nombre de archivo que suele usar el archivo de encabezado de símbolos principal.

    Nota:

    Lo que escriba en el cuadro Directivas de símbolos de solo lectura se incluye en el archivo de recursos exactamente como lo escriba. Asegúrese de que lo que escribe no contiene errores de sintaxis o de ortografía.

    Use el cuadro Directivas de símbolos de solo lectura para incluir archivos solamente con definiciones de símbolos. No incluya definiciones de recursos; en caso contrario, se crearán definiciones de recursos duplicadas cuando se guarde el archivo.

  3. Coloque los símbolos en el archivo especificado.

    Los símbolos de los archivos incluidos de esta manera se evaluarán cada vez que abra el archivo de recursos, pero no se reemplazarán en el disco cuando guarde el archivo.

  4. Seleccione Aceptar.

Para cambiar el nombre del archivo de encabezado de símbolos de recurso

  1. En Vista de recursos, haga clic con el botón derecho en el archivo .rc y seleccione Archivos de inclusión de recursos.

  2. En el cuadro Archivo de encabezado de símbolos, escriba el nuevo nombre del archivo de inclusión.

Requisitos

Win32

Consulte también

Identificadores de recursos (símbolos)
Crear símbolos
Identificadores de símbolo predefinidos