2010-11-29 4 views
5

Tengo un programa en C++ con lo siguiente en el archivo de cabecera: #define VARIABLE_X 100¿Cómo puedo crear un archivo común entre JavaScript y C/C++ para una constante?

También, presentar una JavaScript con lo global: VARIABLE_X = 100;

Estos valores serán siempre tienen que ser los mismos.

En lugar de tener que cambiarlos en ambos lugares (.h y .js), necesito un archivo común donde ambos puedan obtener este valor, por lo tanto, solo necesitan cambiarse en un solo lugar.

¿Cómo puedo crear un archivo común entre JavaScript y C/C++ ........ para # define/constant?

Gracias.

+1

+1, he enfrentado este dilema para el almacenamiento constante entre idiomas antes de que no haya una buena solución. –

+0

Jason, ¿qué piensas de la respuesta de Anon? ¿Es esta una mejor solución de la que terminaste? ¿O es que realmente no hay una manera de tener un "archivo compartido" entre los dos frente a los archivos generadores de compilación? –

Respuesta

5

Tiene un proceso de creación de secuencias de comandos real, ¿verdad?

sólo se adhieren una regla en su makefile que regenera constants.h si constants.js ha cambiado.

+2

+1. Pero, por favor, mientras lo hace, use constantes reales en el programa C++: 'const int VARIABLE_X = 100;' (o el tipo que sea apropiado en lugar de 'int') y no un #define. #define es un copiar y pegar literalmente. Use las características del lenguaje real en su lugar, cuando existen. –

+0

Anon, perdón por mi falta de conocimiento en los procesos de compilación, pero ¿sería posible cambiar la variable particular en JS y hacer que actualice un #define específico en .h en una regla de archivo make? Podrías elaborar por favor Gracias. –

+1

@Tommy: en VS, si va a la página Proyecto, y luego a la pestaña Generar, puede definir pasos previos y posteriores a la construcción. Cualquier cosa que configure en la sección de preconstrucción será ejecutada por Visual Studio antes de que realmente construya algo, para que pueda escribir un programa rápido para tomar el archivo JS y crear el nuevo archivo de encabezado basado en eso, y tener Visual Studio automáticamente. hazlo cada vez que vaya a construir el proyecto. –

3

¿Qué sistema de construcción está utilizando? El sistema de compilación es un muy buen lugar para este tipo de cosas.

+0

Ding old school CGI en Visual Studio (código del lado del servidor) y JavaScript/HTML, básicamente, en el bloc de notas. (sí, lo sé) –

+1

@Tommy No soy un experto en herramientas de Microsoft, pero estoy bastante seguro de que realmente se puede hacer en el sistema de compilación VS. –

+1

+1. Incluso para proyectos rudimentarios que ejecuta usted mismo, un sistema de compilación es una victoria por muchas razones, incluida esta. –

0

No puede, por muchas razones. Sin embargo, hay una solución simple: tener una función que genera un archivo Javascript de las constantes y cargarlo dinámicamente en su Javascript.

Algo tan simple como:

printf("VARIABLE_X = %d;\n", VARIABLE_X); 

Si se convierte en una molestia de mantenimiento, se puede escribir una función sencilla de generar tanto el archivo .h y los Js archivo fuera de un formato común.

+0

Nunca pensé en eso. Para cargar este javascript generado, simplemente inclúyalo en html o ¿hay alguna otra forma de "cargarlo" en mi JavaScript actual? Gracias. –

+1

Depende mucho del entorno en el que está trabajando. ¿ASP.NET? PHP? Django? Algún otro entorno? Suena como un tipo de ambiente personalizado si estás usando C++. La última vez que vi gente fue que era CGI. Pero probablemente me estoy perdiendo algo. –

+1

Ah, acabo de ver tu comentario anterior, estás usando CGI de bajo nivel. En ese caso, simplemente configure la fuente para el

Cuestiones relacionadas