Compartir a través de


TN035: Utilizar archivos de recursos y archivos de encabezado con Visual C++

[!NOTA]

La nota técnica siguiente no se ha actualizado desde que primero incluida en la documentación en línea.Como resultado, algunos procedimientos y temas podrían estar obsoletas o incorrectos.Para obtener la información más reciente, se recomienda busca el tema de interés en el índice de la documentación en línea.

Esta nota describe cómo el editor de recursos de Visual C++ admite archivos de varios recursos y archivos de encabezado compartidos en un solo proyecto o los pasos compartidos en varios proyectos y cómo puede aprovecharse de ese compatibilidad.Esta nota responde a estas preguntas:

  • ¿Cuándo puede ser que desee dividir un proyecto en archivos de recursos o archivos de encabezado múltiples, y cómo hace it?

  • Cómo se comparte un encabezado común. ¿Archivo de h entre dos archivos de .RC?

  • ¿Cómo se divide recursos del proyecto en varios archivos de .RC?

  • Cómo haga se (y las herramientas) administran las dependencias de compilación entre .RC, .CPP, y. ¿Archivos de h?

Debe tener en cuenta que si agrega un archivo de recursos adicional al proyecto, Pero no reconocerá los recursos en el archivo agregado.

Esta nota se estructura para responder a las preguntas anteriores como sigue:

  • Overview of How Visual C++ Manages Resource Files and Header Files proporciona información general sobre cómo el comando concreto de Inclusión de recursos en Visual C++ permite utilizar los archivos de recursos y archivos de encabezado del mismo proyecto.

  • Analysis of AppWizard-created .RC and .H Files busca el recurso y los archivos de encabezado varias usados por una aplicación AppWizard-creada.Estos archivos sirven como buen modelo para los archivos de recursos adicionales y archivos de encabezado que puede agregar al proyecto.

  • Including Additional Header Files describe dónde debería incluir los archivos de encabezado múltiples, y proporciona detalles cómo hacerlo.

  • Sharing a Header File Between Two .RC Files muestra cómo puede compartir un archivo de encabezado entre varios archivos de .RC en proyectos diferentes, o quizás en el mismo proyecto.

  • Using Multiple Resource Files in the Same Project describe dónde puede que desee dividir el proyecto en varios archivos de .RC, y proporciona detalles cómo hacerlo.

  • Enforcement of Non-Editable Visual C++ Files describe cómo puede asegurarse de que Visual C++ no modifique y que no cambie el formato involuntariamente un recurso personalizado.

  • Managing Symbols Shared by Multiple Visual C++-Edited .RC Files describe cómo compartir los mismos símbolos a través de varios archivos de .RC y cómo evitar asignar valores numéricos duplicados del identificador.

  • Managing Dependencies Between .RC, .CPP, and .H Files describe cómo Visual C++ evita los archivos innecesarios de .CPP que vuelven a compilar que dependen de los archivos de símbolos de recursos.

  • How Visual C++ Manages Set Includes Information proporciona detalles técnicos sobre cómo Visual C++ realiza el seguimiento de los archivos (anidada) varias de .RC y archivos de encabezado varias que son especificado con #include en un archivo .RC.

Información general sobre Cómo Visual C++ administra archivos de recursos y archivos de encabezado

Visual C++ administra un único archivo de recursos de .RC y administrados. Archivo de encabezado h como un par estrechamente acoplado de archivos.Al modificar y guardar los recursos en un archivo .RC, puede editar y guardar indirectamente símbolos en correspondiente. Archivo de h.Aunque puede abrir y editar archivos varios de .RC al mismo tiempo (mediante la interfaz de usuario MDI de Visual C++) para cualquier archivo dado de .RC edita indirectamente exactamente un archivo de encabezado correspondiente.

Archivo de encabezado de símbolos

De forma predeterminada, Visual C++ nombres siempre el archivo de encabezado correspondiente RESOURCE.H, sin importar el nombre del archivo de recursos (por ej., MYAPP.RC).Mediante el comando de Resource Includes de menú de Ver en Visual C++, puede cambiar el nombre de este archivo de encabezado actualizar el archivo de encabezado de Símbolos en el cuadro de diálogo de Set Includes .

Directivas de solo lectura de símbolos

Aunque Visual C++ editar sólo un archivo de encabezado para cualquier archivo dado de .RC, Visual C++ admite referencias a los símbolos definidos en archivos de encabezado de sólo lectura adicionales.Mediante el comando de Resource Includes de menú de Ver en Visual C++, puede especificar cualquier número de archivos de encabezado de sólo lectura adicionales como directivas de solo lectura de Símbolos.La restricción “de sólo lectura” significa que al agregar un nuevo recurso en el archivo .RC, puede utilizar un símbolo definido en el archivo de encabezado de solo lectura; pero si elimina el recurso, el símbolo todavía sigue siendo definido en el archivo de encabezado de solo lectura.No puede cambiar el valor numérico asignado a un token de solo lectura.

Directivas de tiempo de compilación

Visual C++ admite también el anidamiento de archivos de recursos, donde está especificado con #include un archivo .RC dentro de otro.Al editar un archivo determinado de .RC mediante Visual C++, los recursos de los archivos de especificado con #include no son visibles.Pero cuando se compila el archivo .RC, archivos de especificado con #include también están compilados.Mediante el comando de Resource Includes de menú de Ver en Visual C++, puede especificar cualquier número de archivos de especificado con #include .RC como directivas de tiempo de compilación.

Nota qué ocurre si se lee en Visual C++ ese otro archivo de .RC de los #include de .RC un archivo que no se especifique como directiva de tiempo de compilación.Esta situación podría surgir al llevar a Visual C++ un archivo .RC que había estado manteniendo previamente manualmente con un editor de texto.Cuando Visual C++ lee el archivo de especificado con #include .RC, combina los recursos de especificado con #include en el archivo del elemento primario .RC.Cuando se guarda el archivo primario .RC, la instrucción #include, de hecho, se reemplazará por los recursos de especificado con #include.Si no desea esta combinación para ocurrir, debe quitar la instrucción #include del elemento primario .RC antes de leer en Visual C++; utilizando Visual C++, agregue a la misma instrucción #include que una directiva de tiempo de compilación.

Visual C++ guarda en un archivo .RC las tres clases anterior de información establecida de Inclusión (archivo de encabezado de Símbolos, directivas de solo lectura de Símbolos, y directivas en tiempo de compilación) en directivas #include y en recursos de TEXTINCLUDE.Explica los recursos de TEXTINCLUDE, detalle de implementación del que no tenga normalmente tratar, en Cómo Visual C++ administra el conjunto incluye información.

Análisis de .RC AppWizard-Creado y. Archivos de h

Examinar el código de aplicación generado por AppWizard proporciona una visión sobre cómo Visual C++ administra archivos de recursos y archivos de encabezado.Los extractos de código examina abajo son de una aplicación de MYAPP generada por AppWizard mediante las opciones predeterminadas.

Una aplicación AppWizard-creada utiliza archivos de varios recursos y archivos de encabezado múltiples, que se resumen en el diagrama siguiente:

   RESOURCE.H     AFXRES.H                    
          \       /                              
           \     /                                
          MYAPP.RC                               
              |                                
              |                              
        RES\MYAPP.RC2  
        AFXRES.RC                   
        AFXPRINT.RC                 

Puede ver estas relaciones de varios archivos mediante el comando de Inclusión de archivos y de conjunto de Visual C++.

  • MYAPP.RC
    El archivo de recursos de la aplicación que edita mediante Visual C++.

RESOURCE.H es el archivo de encabezado específico de la aplicación.Siempre se llama RESOURCE.H por AppWizard, coherente con llamar predeterminado de Visual C++ del archivo de encabezado.#include Para este archivo de encabezado es la primera instrucción del archivo de recursos (MYAPP.RC):

//Microsoft Visual C++ generated resource script
//
#include "resource.h"
  • RES \ MYAPP.RC2
    Contiene los recursos que no se editarán en Visual C++ pero se incluirá en el archivo compilado final .EXE.AppWizard no crea a dicho recurso de forma predeterminada, ya que Visual C++ puede editar todos los recursos estándar, incluyendo el recurso de versión (una nueva característica en esta versión).Un archivo vacío genera AppWizard en caso de que desee agregar sus propios recursos con formato personalizado a este archivo.

Si utiliza recursos con formato personalizado, puede agregarlos al RES \ a MYAPP.RC2 y modificarlos mediante el editor de texto de Visual C++.

AFXRES.RC y AFXPRINT.RC contienen los recursos estándar necesarios en ciertas características del marco.Como el RES \ MYAPP.RC2, estos dos marco-proporcionaron a los archivos de recursos son especificado con #include al final de MYAPP.RC, y se especifican en las directivas de tiempo de compilación del cuadro de diálogo determinado de Inclusión.Por tanto, no ve ni editar directamente a estos recursos de marco mientras edita MYAPP.RC en Visual C++, pero está compilado en el archivo binario de .RES de la aplicación y el archivo final .EXE.Para obtener más información sobre los recursos estándar de .NET framework, incluidos los procedimientos para modificarlos, vea nota técnica 23.

AFXRES.H define los símbolos estándar, como ID_FILE_NEW, utiliza el marco y se usa específicamente en AFXRES.RC.De AFXRES.H EL WINRES.H de los #include también, que contiene un subconjunto de WINDOWS.H que son necesarios en Visual C++ genera archivos de .RC así como AFXRES.RC.Los símbolos definidos en AFXRES.H están disponibles cuando se edita el archivo de recursos de la aplicación (MYAPP.RC).Por ejemplo, ID_FILE_NEW se utiliza para el elemento de menú de Archivo Nuevo en recursos de menús de MYAPP.RC.No puede cambiar o eliminar estos símbolos inicio.

Archivos de encabezado de inclusión adicionales

La aplicación AppWizard-creada incluye sólo dos archivos de encabezado: RESOURCE.H y AFXRES.H.Sólo RESOURCE.H es específico de la aplicación.Puede ser necesario incluir los archivos de encabezado de sólo lectura adicionales en los casos siguientes:

El archivo de encabezado proporcionado por un origen externo, o desea compartir el archivo de encabezado entre varios proyectos o partes diferentes del mismo proyecto.

El archivo de encabezado tiene el formato y comentarios que no desea que Visual C++ para cambiar o filtrar cuando guarde el archivo.Por ejemplo, desea realizar para mantener los #define como los que utilizan la aritmética simbólica:

#define RED 0
#define BLUE 1
#define GREEN 2
#define ID_COLOR_BUTTON 1001
#define ID_RED_BUTTON (ID_COLOR_BUTTON + RED)
#define ID_BLUE_BUTTON (ID_COLOR_BUTTON + BLUE)
#define ID_GREEN_BUTTON (ID_COLOR_BUTTON + GREEN)

Puede incluir archivos de encabezado de sólo lectura adicionales mediante el comando de Resource Includes de especificar la instrucción #include como segunda directiva de solo lectura de Símbolos, como en:

#include "afxres.h"
#include "second.h"

El nuevo diagrama de la relación entre archivos ahora el siguiente aspecto:

                   AFXRES.H       
    RESOURCE.H     SECOND.H                    
          \       /                              
           \     /                                
          MYAPP.RC   
              |                                
              |                              
        RES\MYAPP.RC2  
        AFXRES.RC                   
        AFXPRINT.RC                 

Compartir archivos de Entre Dos un .RC del archivo de encabezado

Quizá desee compartir un archivo de encabezado entre dos archivos de .RC que estén en proyectos diferentes, o posiblemente el mismo proyecto.Para ello, aplique simplemente la técnica de solo lectura de las directivas descrita anteriormente a ambos archivos de .RC.En el caso donde los dos archivos de .RC para aplicaciones diferentes (proyectos diferentes), el resultado se muestra en el diagrama siguiente:

     RESOURCE.H   AFXRES.H   RESOURCE.H  
    (for MYAPP1)  SECOND.H   (for MYAPP2)             
          \       /     \       /           
           \     /       \     /             
          MYAPP1.RC      MYAPP2.RC                 
           /    \        /     \                   
          /      \      /       \            
RES\MYAPP1.RC2  AFXRES.RC     RES\MYAPP2.RC2              
                AFXPRINT.RC                 

El caso donde el segundo archivo de encabezado es compartido por dos archivos de .RC en la misma aplicación (proyecto) se describe a continuación.

Utilizar archivos de recursos de Varias en el proyecto del mismo

Visual C++ y varios archivos de compatibilidad .RC del compilador de recursos en el mismo proyecto mediante los #include de un archivo .RC dentro de otro.Se permite el anidamiento múltiple.Hay varias razones para dividir los recursos del proyecto en varios archivos de .RC:

  • Es más fácil administrar un gran número de recursos entre los miembros del equipo varios del proyecto si divide los recursos en varios archivos de .RC.Si utiliza un paquete de administración de control de código fuente para desproteger los archivos y el proteger los cambios, dividir los recursos en varios archivos de .RC producirá un control más preciso sobre administrar cambios a los recursos.

  • Si desea utilizar directivas de preprocesador, como #ifdef, #endif, y #define, por partes de los recursos, debe aislarlos en los recursos de sólo lectura que compilan mediante el compilador de recursos.

  • Los archivos componentes de .RC cargará guardar y más rápido en Visual C++ que un archivo compuesto de .RC.

  • Si desea mantener un recurso con un editor de texto en un formato legible, debe mantenerlo en un archivo .RC independiente de las ediciones de un objeto Visual C++.

  • Si necesita conservar un recurso definido por el usuario en un archivo binario o el formato de texto que se interpretable por otro editor especializado de los datos, debe mantenerlo en un archivo independiente de .RC para que Visual C++ no cambia el formato a los datos hexadecimales.Los recursos (positivos) del archivo de .WAV en MFC avanzaron los conceptos que el ejemplo SPEAKN es un buen ejemplo.

Puede #include un SECOND.RC en las directivas de tiempo de compilación en el cuadro de diálogo determinado de Inclusión:

#include "res\myapp.rc2"  // non-Visual C++ edited resources
#include "second.rc"  // THE SECOND .RC FILE

#include "afxres.rc"  // Standard components
#include "afxprint.rc"  // printing/print preview resources

El resultado se muestra en el diagrama siguiente:

   RESOURCE.H     AFXRES.H                    
          \       /                              
           \     /                                
          MYAPP.RC
              |                                
              |                              
        RES\MYAPP.RC2
        SECOND.RC  
        AFXRES.RC                   
        AFXPRINT.RC                 

Directivas using en tiempo de compilación, puede organizar el Visual C++-editable y recursos no explorable en varios archivos de .RC, donde “maestra” MYAPP.RC no hace nada pero #include los otros archivos de .RC.Si utiliza un archivo de proyecto .MAK de Visual C++, debe incluir el archivo “principal” de .RC en el proyecto para que todos los recursos de especificado con #include compilados con la aplicación.

Cumplimiento de los archivos de Noneditable Visual C++

El archivo AppWizard-creado RES \ MYAPP.RC2 es un ejemplo de un archivo que contiene los recursos que no desea leer accidentalmente en Visual C++ y después escribirlo retroceso con pérdida de información de formato.Para protegerse de esto, coloque las siguientes líneas al principio del archivo RES \ MYAPP.RC2:

#ifdef APSTUDIO_INVOKED
    #error this file is not editable by Visual C++
#endif //APSTUDIO_INVOKED

Cuando Visual C++ compila el archivo .RC, define APSTUDIO_INVOKED así como RC_INVOKED.Si se daña la estructura de archivos AppWizard-creada y Visual C++ lee la línea #error anteriormente, notifica un error irrecuperable y anula la lectura del archivo .RC.

Administrar Símbolos compartido por los archivos de Varias Visual C++-Edited .RC

Dos problemas surgen cuando se divide los recursos en varios archivos de .RC que desea editar por separado en Visual C++:

  • Quizás desee compartir los mismos símbolos a través de varios archivos de .RC.

  • Debe ayudar Visual C++ para evitar asignar los mismos valores numéricos ID recursos distintos (símbolos).

El diagrama siguiente muestra una organización de .RC y. Archivos de h que manipula el primer problema:

              MYAPP.RC
             /         \
            /           \
MYSTRS.H   / MYSHARED.H  \  MYMENUS.H
     \    /    /      \   \    \
      \  /    /        \   \    \
   MYSTRS.RC           MYMENUS.RC

En este ejemplo, mantener los recursos de cadena un archivo de recursos, MYSTRS.RC, y menús se mantienen otro, MYMENUS.RC.Algunos símbolos, por ejemplo para comandos, deban compartir entre ambos.Por ejemplo, un ID_TOOLS_SPELL puede ser el identificador de comando de menú para el elemento de la ortografía en un menú herramientas; y también puede ser el identificador de cadena del símbolo del sistema muestra el marco en la barra de estado de la ventana principal de la aplicación.

El símbolo de ID_TOOLS_SPELL se mantiene el archivo de encabezado compartido, MYSHARED.H.Mantiene este archivo de encabezado compartido manualmente con un editor de texto; Visual C++ no editarlo directamente.En los dos archivos de recursos MYSTRS.RC y MYMENUS.RC, especifique #include MYSHARED.H en las directivas de solo lectura para MYAPP.RC, mediante el comando de Resource Includes , como se describió anteriormente.

Resulte más conveniente prever el símbolo que se compartirá antes de intentar uso consiste en identificar los recursos.Agregue el símbolo al archivo de encabezado compartido y, si aún no tiene especificado con #include el archivo de encabezado compartido en las directivas de solo lectura para el archivo .RC, hacerlo antes de utilizar el símbolo.Si no se haya anticipado compartir el símbolo de esta manera, se tenía que manualmente (mediante un editor de texto) mueve la instrucción #define para el símbolo, por ejemplo, de MYMENUS.H a MYSHARED.H antes de utilizarla en MYSTRS.RC.

Al administrar símbolos en varios archivos de .RC, también debe ayudar Visual C++ para evitar asignar los mismos valores numéricos ID recursos distintos (símbolos).Para cualquier archivo dado de .RC, Visual C++ asigna mejorado id. en cada uno de estos cuatro dominios de identificador.Entre las sesiones de edición, Visual C++ realiza el seguimiento del identificador pasado que asignó en cada uno de los dominios en el archivo de encabezado de símbolos para el archivo .RC.Aquí es cuáles son los valores de APS_NEXT para (nuevo) archivo vacío de .RC:

#define _APS_NEXT_RESOURCE_VALUE  101
#define _APS_NEXT_COMMAND_VALUE   40001
#define _APS_NEXT_CONTROL_VALUE   1000
#define _APS_NEXT_SYMED_VALUE     101

_APS_NEXT_RESOURCE_VALUE es el siguiente valor de símbolos que se utilizará para un recurso de cuadro de diálogo, recurso de menú, y así sucesivamente.El intervalo válido para los valores de símbolos de recursos es 1 a 0x6FFF.

_APS_NEXT_COMMAND_VALUE es el siguiente valor de símbolos que se utilizará para un identificador de comando.El intervalo válido para los valores de símbolos de comando es 0x8000 a 0xDFFF.

_APS_NEXT_CONTROL_VALUE es el siguiente valor de símbolos que se utilizará para un control de cuadro de diálogo.El intervalo válido para los valores de símbolos del control del diálogo es 8 a 0xDFFF.

_APS_NEXT_SYMED_VALUE es el siguiente valor de símbolos que se emitirá al asignar manualmente un valor de símbolos mediante el comando de Nuevo en el explorador de Símbolos.

Visual C++ comienza con valores ligeramente superiores esos el valor legal inferior al crear un nuevo archivo .RC.AppWizard también se inicializará estos valores algo más adecuado para aplicaciones MFC.Para obtener más información sobre intervalos de valor ID, vea nota técnica 20.

Ahora cada vez que se crea un nuevo archivo de recursos, incluso en el mismo proyecto, Visual C++ define los mismos valores de _APS_NEXT_ .Esto significa que si agrega diálogos, por ejemplo, varias en dos archivos de .RC, es muy probable que el mismo valor #define tenga asignado a diversos cuadros de diálogo.Por ejemplo, IDD_MY_DLG1 en el primer archivo .RC se puede asignar el mismo número, 101, como IDD_MY_DLG2 en un segundo archivo .RC.

Para evitar esto, debe reservar un intervalo numérico independiente para cada uno de los cuatro dominios de id. en archivos respectivos de .RC.Haga esto manualmente actualiza los valores de _APS_NEXT en cada uno de los archivos before de .RC que inicie recursos de suma.Por ejemplo, si el primer archivo .RC utiliza los valores predeterminados de _APS_NEXT , después puede ser conveniente para asignar los valores de _APS_NEXT al segundo archivo .RC:

#define _APS_NEXT_RESOURCE_VALUE  2000
#define _APS_NEXT_COMMAND_VALUE   42000
#define _APS_NEXT_CONTROL_VALUE   2000
#define _APS_NEXT_SYMED_VALUE     2000

Por supuesto, todavía es posible que Visual C++ asignar en muchos id. en el primer archivo .RC que los valores numéricos iniciará para superponer los reservados para el segundo archivo .RC.Debe reservar intervalos suficientemente grandes de modo que no ocurra esto.

Administrar las dependencias Entre .RC, .CPP, y. Archivos de h

Cuando Visual C++ guarda un archivo .RC, también guarda los cambios de símbolos al archivo correspondiente de RESOURCE.H.Ninguno de los archivos de .CPP que hacen referencia a recursos en el archivo .RC deben #include el archivo de RESOURCE.H, normalmente en el archivo de encabezado principal de su proyecto.Esto conduce a un efecto secundario no debido a la administración de proyectos interna del entorno de desarrollo que examina los archivos de código fuente de las dependencias del encabezado.Cada vez que agrega un nuevo símbolo en Visual C++, todo el archivo de .CPP que #include RESOURCE.H necesario volver a compilar.

Visual C++, evita la dependencia en RESOURCE.H incluido el siguiente comentario como la primera línea del archivo de RESOURCE.H:

//{{NO_DEPENDENCIES}}

El entorno de desarrollo interpreta este comentario omitiendo los cambios a RESOURCE.H de modo que los archivos dependientes de .CPP no necesitan recompilarse.

Visual C++ agrega siempre la línea de comentario de //{{NO_DEPENDENCIES}} a un archivo .RC cuando guarde el archivo.En algunos casos, el evitar de la dependencia de compilación en RESOURCE.H puede provocar errores en tiempo de ejecución desapercibidos en tiempo de vínculo.Por ejemplo, si utiliza el explorador de Símbolos para cambiar el valor numérico asignado a un token para un recurso, no encontrarán y no se carga el recurso correctamente en tiempo de ejecución de la aplicación si el archivo de .CPP que hace referencia al recurso no se vuelve a generar.En estos casos, debe explícitamente volver a compilar los archivos de .CPP que conozca sea afectado por los cambios de símbolos en RESOURCE.H o seleccione Rebuild All.Si tiene la necesidad con frecuencia para cambiar los valores de símbolos para un grupo de recursos, se le resultará probablemente más conveniente y seguro utilizar estos símbolos en un archivo de encabezado de sólo lectura independiente, como se describe en la sección anterior Archivos de encabezado de inclusión adicionales.

Cómo Visual C++ administra el conjunto incluye información

Tal y como se describe anteriormente, el comando concreto de Inclusión de menú archivo permite especificar tres tipos de información:

  • Archivo de encabezado de símbolos

  • Directivas de solo lectura de símbolos

  • Directivas de tiempo de compilación

A continuación se describe cómo Visual C++ mantiene esta información en un archivo .RC.No necesita esta información utilizar Visual C++, pero puede mejorar su comprensión de modo que pueda usar con más confianza la característica determinada de Inclusión.

Almacenan cada uno de los tres tipos anteriores de información concreta de Inclusión en el archivo .RC de dos formas: (1) como #include u otras directivas interpretables mediante el compilador de recursos y (2), como recursos especiales de TEXTINCLUDE interpretables sólo en Visual C++.

El propósito del recurso de TEXTINCLUDE es con seguridad a información concreta de inclusión del almacén en un formulario que sea fácilmente presentable en el cuadro de diálogo de Set Includes de Visual C++.TEXTINCLUDE es un tipo de recurso definido en Visual C++.Visual C++ reconoce a tres recursos específicos de TEXTINCLUDE que tienen los números de identificación 1, 2 y 3 de recursos:

Id. de recurso de TEXTINCLUDE

Tipo de información concreta de Inclusión

1

Archivo de encabezado de símbolos

2

Directivas de solo lectura de símbolos

3

Directivas de tiempo de compilación

Los archivos de RESOURCE.H muestra cada uno de los tres tipos de información concreta de Incluya el valor predeterminado MYAPP.RC y creados por AppWizard, como se describe a continuación.La sintaxis RC requiere el extensor \ 0 y los tokens "" entre el BEGIN y los bloque End especificar cadenas finalizadas cero y el carácter de comilla doble respectivamente.

Archivo de encabezado de símbolos

El formato de la información de archivo de encabezado de Símbolos interpreta mediante el compilador de recursos es simplemente una instrucción #include:

#include "resource.h"

El recurso correspondiente de TEXTINCLUDE es:

1 TEXTINCLUDE DISCARDABLE
BEGIN
   #resource.h\0"
END

Directivas de solo lectura de símbolos

Las directivas de solo lectura de Símbolos están incluidas en la parte superior de MYAPP.RC con el siguiente formato interpretable mediante el compilador de recursos:

#include "afxres.h"

El recurso correspondiente de TEXTINCLUDE es:

2 TEXTINCLUDE DISCARDABLE
BEGIN
   "#include ""afxres.h""\r\n"
   "\0"
END

Directivas de tiempo de compilación

Las directivas de tiempo de compilación se incluyen al final de MYAPP.RC con el siguiente formato interpretable mediante el compilador de recursos:

#ifndef APSTUDIO_INVOKED
///////////////////////
//
// From TEXTINCLUDE 3
//
#include "res\myapp.rc2"  // non-Visual C++ edited resources

#include "afxres.rc"  // Standard components
#include "afxprint.rc"  // printing/print preview resources
#endif  // not APSTUDIO_INVOKED

La directiva de #ifndef APSTUDIO_INVOKED indica a Visual C++ para omitir las directivas de tiempo de compilación.

El recurso correspondiente de TEXTINCLUDE es:

3 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""res\myapp.rc2""  // non-Visual C++ edited resources\r\n"
"\r\n"
"#include ""afxres.rc""  // Standard components\r\n"
"#include ""afxprint.rc""  // printing/print preview resources\r\n"
"\0"
END

Vea también

Otros recursos

Notas técnicas por número

Notas técnicas por categoría