Bueno se trata de usar un Engine 3d que se llama Nebula Device 2 , que esta desarrollado enteramente en C++, el motor es Free y se puden bajar todos los fuentes http://nebuladevice.cubik.org/
En algún momento pregunte si era conveniente el desarrollar un engine en st , lo cual sigo pensando que seria la mejor solución .El problema es que esto me aleja de mi objetivo primario que es desarrollar un game , charlando con los desarrolladores de games de junin Oniric , me recomendaron que tome la alternativa mas corta pues ellos tomaron la mas larga y no me lo recomendaron para empezar.
Es por eso que quería saber como hacer la conexión con objetos c++, vos decís que es parecido a lo que se hace con objetos COM , tengo entendido que los COM y los C++ son compatibles a nivel binario nada mas , cual es la diferencia entre ambos.
En MT la comunicación con COM es bastante fácil , ya que hay todo un mecanismo bien definido para tal caso.
Que es eso de hacer un wrappers intermedios en C ???.
Otra cosa que no entendi es :
Hoy en día es muy raro encontrar que quien expone una librería lo hace solo en C++ (y no expone una API);
saludos kiko
"Alejandro F. Reimondo" <aleReimondo@...> escribió:
kiko,
Seguramente en MT tenes una opción muy transparente para
usar elementos de C++... pues el compilador es estático y preparado para integrarse bien con windows. Fijate como se accede a objetos COM y seguramente allí tendrás guías de como hacer lo que necesitas (no dejes de preguntar en la lista de usuarios del MT para ser bien asistido en esta duda).
En un momento (hace casi 10 años) me toco hacer una conexión como la que te estás planteando (con un Smalltalk mío) para acceder a rutinas de compresión por fractales (algo que estaba por "ponerse de moda" para comprimir imágenes, en ese entonces). El usar objetos C++ es algo menos frecuente de lo que parece. En ese momento lo que hice fue definir los métodos que tenia la DLL como api calls (buscando la dirección del binding con el nombre mangleado y atachandoselo al método Smalltalk explícitamente), con un diseño similar al que tiene VS. Así accedía a las funciones de instanciación del objeto C++. Luego de crearlo (y tener el miserable
puntero :) accedía a la tabla virtual y mapeaba la estructura del objeto cpuspus a una estructura dinámica (parecida a las SelfDefinedStructures en VS) y a una clase Smalltalk mapeando la tabla virtual con métodos definidos como API y a los que le pichicateaba la dirección de las funciones encontradas en la tabla virtual.
Como te imaginarás todo funcionaba de maravillas... pero luego de hacerlo (cosa indispensable para mantener mi sanidad y no tener que hacer wrappers intermedios en C) llegue a la conclusión que no era algo digno de recomendar :-)
Hoy en día es muy raro encontrar que quien expone una librería lo hace solo en C++ (y no expone una API); pero si es ese tu caso; te recomendaría que evalúes si podes evitar usarlo (para no heredar la obsolescencia característica de este tipo de librerías).
suerte, Ale.
----- Original Message ----- From: "kikote gregoris"
<kikogregoris@...> To: <smalltalking@...> Sent: Monday, March 06, 2006 4:52 PM Subject: [objetos] Objetos C++ con ST
> Hola gente > > Queira saber como se puede interactuar con una dll que contiene un objeto c++ ?. > Algo bien simple , una clase XXX que contiene el metodo > int suma(int x , int y) . > > Lo quiero hacer desde el MT . > > saludos kiko > > > --------------------------------- > 1GB gratis, Antivirus y Antispam > Correo Yahoo!, el mejor correo web del mundo > Abrí tu cuenta aquí
1GB gratis, Antivirus y Antispam Correo Yahoo!, el mejor correo web del mundo Abrí tu cuenta aquí
kiko, Seguramente en MT tenes una opción muy transparente para usar elementos de C++... pues el compilador es estático y preparado para integrarse bien con ...
Hola Ale Bueno se trata de usar un Engine 3d que se llama Nebula Device 2 , que esta desarrollado enteramente en C++, el motor es Free y se puden bajar todos...
Hola, ... Exponer el conjunto de funciones para ser usadas desde C u otra plataforma por medios tradicionales. Normalmente, los componentes de la librería se ...
Hola ALe Los fuentes estan para hacer lo que uno quiere , no hay una DLL echa . Con respecto a exponer un API , podrías decirme como hacer esto con algun...
(quizas lo que sigue es una explicación muy boluda de cosas que ya sabes, pero que son nesarias para entender por que interactuar con C++ es más complejo que...
Hola diego Muy buena la explicación , la verdad es que no tenia idea de todo este quilombo. Voy a investigar un poco mas la cuestión , para que me quede...
La verdad que no sé nada de formas automaticas de hacer esas cosas :( (tengo entendido que habia una herramienta para VAST que leia archivos .h y generaba la...
Hola diego Que es lo que te hace pensar que nebula tiene características de alto nivel que me puedan complicar la vida ??. Yo leí la documentación y sin ser...
A "alto nivel" me refiero a que Nebula no solo provee graficos 3d (ala OpenGL), si no que ademas tiene modeladas muchas abstracciones como file I/O, threads,...
Hola ALe Cual es la estructura de un objeto C++ y que lo diferencia con un ST, En los manuales de MT hay un esquema que muestra al objeto ST con una direccion...
Hola kiko, ... Hace una DLL que use la librería y expone una funcion API por cada funcionalidad que desees usar. Creo que hay herrameinats que automatizan (al...
Hola ale Estas diciendo que se me va a complicar trabajando con este engine ???. La eleccion del mismo es por que es free y no encontre otra alternativa free...
Hola, ... Ninguna. En C++ no se puede trabajar con objetos. En C++ u otro LOO se puede ambicionar como máximo el trabajar OO; es decir, con componentes. ...
Hola ale En un articulo tuyo explicas las diferencias entre un objeto ST y un componente , el echo es que estoy confundido ya que en algunos lugares llaman...
Hola, Si uno usa herramientas que solo permiten trabajar Orientado a Objetos (y hacer diseño OO), no hay posibilidad de distinguir entre componente y objeto;...
Hola kiko, ... No me pareció que Diego dijera que algo te impidiera usarlo, sino más bien que al usarlo, seguramente deberías lidiar con elementos externos,...
Hola ALe Bueno, creo que este es el mismo problema que uno tiene con los esquemas de persistencia, con la diferencia que en esta área uno puede elegir usar...
Hola, ... Nada en particular, solo motivar a un diálogo sobre los temas que convoca nuestro objeto (el de Smalltalking). Tu situación creo que no es aislada;...