Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Port A C#...

Iniciado por TheAzazel, 17 de Octubre de 2005, 11:54:45 AM

« anterior - próximo »

Gezequiel

 En verdad, el echo de tener que tener el wrapper en C++ me ah quitado un poco de ganas, sobretodo porque al ponerme a tratar de escribir algo de codigo me siento un poco perdido y porque el lenguaje en si no me llama demasiado :( .

Pero ahora no quiero abandonar el proyecto :blink: , sobretodo al haber sido uno de los que mas "empujo" el poryecto del port a C#, o desde ahora a Managed C++ ;)

En definitiva, si el paso a Managed C++ es un paso que debe hacerse para poder usar la lib desde C#, pues habra que hacerlo... :huh:  

Gezequiel

 En un momento de inspiracion, creado practicamente por Haddd, se me ocurrio ver que tan dificil seria re-escribir CRM32Pro en C# y segun pude ver no seria tan dificil (o eso creo ahora), ademas, suponiendo que cuento con la ayuda de la genial y siempre bien dispuesta gente de Stratos-AD, el trabajo se reduciria entre un 30% a un 40%.

Quizas solo sean delirios de un amateur que tiene una vaga esperanza de no tener que tocar C++ (ole) , pero para ver si estoy muy equivocado les pongo mi intento (si van a dejar mi animo por el piso, trante de que sea leve :P  :D )

Tengo que admitir que con este intento de portar la libreria directamente a C# (este no, sino el que trate de hacer el wrapper) aclaro mucho mis dudas y pense que tal vez, hacerle caso a Haddd me ayudaria a introducirme en la practica y dejar de lado lo teorico suponiendo que el, como yo, empezo con unos conociemientos muy basicos del tema.

Supuse que una forma seria pasar cada parte de CRM32Pro.h con ayuda de, valgame la redundancia, la ayuda y quedo algo mas o menso asi:
Citar
using System;

namespace CRM32Pro
{
   public class ILogSystem
   {
  public void Init(string * filename, string mode, string level, string * prgname, string * author, string * email, string * web);
  public void Msg(string level, string * );
  public void DumpSurface (SDL_Surface * surface);
  public byte GetState ();
  public void ProfileBegin (string * name);
  public void ProfileEnd (string * name);
  public void ProfileShow ();
   }
}

Claro que, rapidamente, puede verse un error que es la parte de los * xxx, que en caso de empezar, esa seria la primer ayuda que necesitaria XD.
(Haber para cuando ponen un emoticon asi: XD, que queda muy mal! :P )

Bueno, como les dije, traten de no matarme con sus criticas, una cosa mas, si el proyecto es "factible"
Piensan que es mucho para mi??
O podria tolerar los posibles errores y el intento no seria en vano??

Aclaro algo, luego de las proximas dos semanas, en las cuales voy a estar "atareadisimo", voy a tener muuuuuuuucho tiempo para dedicarle al posible port y tambien a juegario.com.ar, que se abran dado cuenta lo deje bastante de lado en el ultimo tiempo.

Adios! y espero no haberles echo desperdiciar mucho tiempo... (ole)

Vicente

 Hola,

en C# no existen los punteros ya que las clases son tipos por referencia (usease, un puntero). Vamos, que la solución es simple, te sobra el * :P

Además piensalo: en C eso era un char*, usease un array de caracteres (porque un nombre de fichero es un array de caracteres). Un string es también un array de caracteres, con lo cual para que necesitas el * ese? :P

De todas formas, quizás a lo mejor antes de portar la librería prueba a escribirte pequeños programas en C# para cogerle el truquillo, y ya luego portas la librería. Un saludo!

Vicente

TheAzazel

 Reescribir la libreria en C# es un curro enorme... y su posterior mantenimiento mas aun... a mi esa idea me hace "tendiendo a 0"...

Vereis, la libreria seguira siendo desarrollada en C++ por el tema multiplataforma y porque es el lenguaje que me permite hacer todo lo que quiero(trabas->0). El tema del wrapper a Net seria para que la gente que quiera usar Net lo pueda hacer.

Por mi parte, no tengo ningun problema en enviar el codigo a quien quiera intentar hacer algo con el pero es que sigo pensando que reescribirlo todo en C# para llevar paralelamente dos desarrollos de la misma lib es mas que una locura.

Gezequiel, yo creo que si puedes hacerlo, esta claro que aun te faltan mas conocimientos pero da igual, la experiencia y el conocimiento lo iras ganando. Lo que necesitas es aclarar las ideas, la unica solucion factible que he visto desde el principio y sigo viendo es intentar hacer el wrapper via C++ managed (lo que ha hecho Berserker es el camino que hay que seguir). Realmente no veo mucha diferencia entre el C++ managed y el C#, son unas cuantas cosillas pero tienen mucho en comun luego quitando el nombre de "C++" que puede asustar..el resto es "facil".

En el post anterior puse mas o menos todos los hot spots que gracias a Berserker han quedado reconocidos... tu piensa si quieres y te gusta intentar hacerlo, por poder, claro que puedes, pero si no te gusta tampoco te sientas forzado eh? :) es muy gratificante que estes poniendo tanto interes en el tema pero si ves que no te llama la atencion no pasa nada eh?

Ahora..anda que no molaria tener el wrapper para usarlo desde C#...la de nuevos adeptos que se cazaria jejeje

Gezequiel

 Leer el post anterior me ah dado unas inmensas ganas de volver a intentarlo, pero esta vez voy a tratar de empezar tranquilo, sin desesperarme por encontrar algun resultado (primero quiero terminar con mis examanes asi que estaria empezando en unas 2 semanas, si alguien quiere hacerlo antes, yo no tengo problema)

Una cosa fundamental que necesitaria (para empezar bien de abajo) es algo que compile Managed C++ porque SharpDevelop (mi IDE de C#) crea proyectos pero no los compila...

Otra: Si alguien se encuentra algo como lo que puso TheAzazel sobre el wrapper pero que no este en ingles, seria una ayuda muy importante.

Bueno, el resto lo veria despues...



Citar
la de nuevos adeptos que se cazaria jejeje
Yo prometo ser el primero en intentar algo!

zupervaca

 [off-topic]
¿que ventajas tiene el c++ managed respecto al c#? es decir, ¿se puede trabajar con punteros y te olvidas de los delete, etc? yo es que lo probe una vez un par de horas y no me convencio, me gusto mas el c++ de toda la vida y el c# actual
[/off-topic]

TheAzazel

Cita de: "zupervaca"[off-topic]
¿que ventajas tiene el c++ managed respecto al c#? es decir, ¿se puede trabajar con punteros y te olvidas de los delete, etc? yo es que lo probe una vez un par de horas y no me convencio, me gusto mas el c++ de toda la vida y el c# actual
[/off-topic]
No tengo ni warra... a ver algun experto que opina jeje

Vicente

 Estooo, creo que no tiene ventajas :P Es simplemente para intentar convencer a los programadores C++ recalcitrantes a que se pasen a .NET si no quieren usar C#.

Es broma ;) Pero creo que no tiene ninguna ventaja respecto a C# la verdad... Un saludo!

Vicente

zupervaca

 yo soy fanatico de c++ y me quedo con c# antes que con c++ managed ;), puede que sea un bicho raro o simplemente me guste la comodidadde este ultimo :lol:  






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.