Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Proyectos En Managed C++

Iniciado por Haddd, 11 de Septiembre de 2004, 03:37:24 PM

« anterior - próximo »

Haddd

 Bien, quiero tener una solución con 2 proyectos. Uno que sea las clases del motor(para ello he creado el proyecto como biblioteca de clases en .NET) y otro un ejemplo usando el motor(un proyecto vacio en .NET).

He creado la solución y he creado el proyecto de clases. Luego he creado el otro proyecto dentro de la solución  y he agregado la referencia del proyecto de clases. Hasta aquí todo genial.

Aquí está el código de la clase:


namespace Haddd
{
public __gc class Video
{
public:
 Video();
};
}


Y aquí el del proyecto en blanco:


using namespace Haddd;

int main()
{
Video *v=new Video();
}


Bien, pues me da un error al compilar el proyecto:

Citard:\Haddd\Managed\Ejemplo\Ejemplo.cpp(5): error C3624: 'System::Object': el compilador no puede encontrar este tipo; está definido en assembly 'mscorlib'

y se refiere a la línea:

Video *v=new Video();

¿Porqué me da este error?

BeRSeRKeR

 Según las MSDN, poniendo

#using

te solucionará el problema.

PD: en realidad eso lo pone como ejemplo pero por probar... :)
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Grugnorr

 Mi consejo, y el de cualquiero con 2 dedos de frente ;), es que minimices lo que puedas el código en Managed C++, sirve sobre todo como "pegamento" entre código C++ y código manejado.


Sobre tu problema.... en .NET todas las clases derivan de Object. Parece que te falta la referencia al Assembly(dll) donde está definido Object: mscorlib.dll . Me extraña mucho que no tengas añadida la referencia por defecto.

Acabo de probar a hacer lo mismo que tú en el VS2003 y funciona perfectamente, veo que me ha añadido referencia a System.dll también, mira a ver si lo tienes, es la primera vez que toco managed c++  :P

Crear wrappers de motores o subsistemas hechos en c++ para usarlos desde .NET empieza a ser algo muy común, sigo pensando que veremos juegos en 3 capas: subsistemas en C++, juego en C# y script en python.net o lua.net.... (en PC, claro...o XBOX2 ;))
hat the hells!

Grugnorr

 Parece que bersi se me coló  :P  
hat the hells!

Haddd

 Exacto, era la referencia. Gracias por el link.