Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Duda: Crear un juego para un móvil en C++

Iniciado por DarkGDK, 03 de Agosto de 2008, 11:13:52 PM

« anterior - próximo »

DarkGDK

Estoy realizando un curso online de C++ (C++ con clase) y he visto que dicen los siguiente, lo cito textualmente:

Citar
El ANSI define un conjunto de reglas. Cualquier compilador de C o de C++ debe cumplir esas reglas, si no, no puede considerarse un compilador de C o C++. Estas reglas definen las características de un compilador en cuanto a palabras reservadas del lenguaje, comportamiento de los elementos que lo componen, funciones externas que se incluyen, etc. Un programa escrito en ANSI C o en ANSI C++, podrá compilarse con cualquier compilador que cumpla la norma ANSI. Se puede considerar como una homologación o etiqueta de calidad de un compilador.

Todos los compiladores incluyen, además del ANSI, ciertas características no ANSI, por ejemplo librerías para gráficos. Pero mientras no usemos ninguna de esas características, sabremos que nuestros programas son transportables, es decir, que podrán ejecutarse en cualquier ordenador y con cualquier sistema operativo.

Según esto, ¿puedo hacer un juego en C++, poner el ejecutable en mi Nokia y que funcione?

davur

No.

Dejando a un lado la cuestionable redacción del texto que citas, lo importante es que código C++ estándar que no depende de ningún aspecto de la implementación y tiene un comportamiento totalmente definido debería producir una salida con un comportamiento equivalente
  • en compiladores estándar diferentes.

  • La salida (un binario, habitualmente) no será idéntica en arquitecturas diferentes, ni siquiera en la misma arquitectura (y evidentemente no será portable entre diferentes arquitecturas). Pero el resultado de ejecutar dicha salida sí debería ser el mismo.

tamat

Por otra parte no debes confundir el lenguaje con el API del sistema.

Cuando programas algo quieres coger el input del usuario (teclado, raton,...) y mostrar el output en la pantalla (imagenes, 3D). Las funciones que sirven para hacer eso no son parte del lenguaje y cada plataforma tiene una librería que da esa funcionalidad.

Existen algunas librerias de sistema pensadas para hacer aplicaciones multiplataforma (como SDL), pero aun así tendras que recompilar para cada plataforma y solo funcionará en las plataformas para las que hayan portado la librería (SDL funciona en MacOSX, Windows, Linux y algunos mas).

En el caso de moviles tienes que buscar que API usa, bajartelo y programar llamando a las funciones de esa librería.
Por un stratos menos tenso

LC0

Citar
Todos los compiladores incluyen, además del ANSI, ciertas características no ANSI, por ejemplo librerías para gráficos.

Vaya, y yo que tenía al tutorial ese del C ConClase como uno bastante serio... Anda que vaya metedura de pata, aunque tiene pinta de que quien escribió eso realmente pretendía poner algo bastante correcto, aunque se equivocó con las palabras.

Efectivamente, cada lenguaje incluye cosas no estándar, aunque yo diría más bien que descluye, como la separación entre implementación y definición de los templates (aunque esto es más de C++, pero bueno). Supongo que a lo que se refería es a la biblioteca conio.h del TurboC, que todo el que ha empezado programando a través de este compilador ha asumido alguna vez en su vida que es estándar :lol:.

Las librerías (bibliotecas) casi siempre son cosas de terceros (salvo con las Boost, que está peleando para ser incluídas en C++0x). Las enganchas en tu aplicación y listos. Pero tienen de estándar lo mismo que tú o yo programemos.

DarkGDK

Pues me ha entrado la curiosidad y he sacado el manual de mi Nokia 6234 y pone que admite aplicaciones J2ME, así que a ver si me hago con un compilado y me hago algo.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.