none
MFC or WINAPI32 RRS feed

  • Pregunta

  • Hola,

    estoy interesado en hacerle una interfaz gráfica a la aplicación de mi proyecto final de carrera. Básicamente se trata de un sistema para control y localización de stock usando RFID en un almacén, por lo tanto en la aplicación tendré que introducir datos relacionados con productos, y mostrar tablas con la información de los productos contenidos en la base de datos.

    Empecé a usar la WINAPI32 de Windows directamente, y al ppio no parece demasiado complejo, pero he visto por ahí que ésta es la forma más difícil de programar la interfaz; como estoy empezando, tampoco se cuanto más se me puede complicar, de momento lo que se hacer es crear la ventana principal, y crear menús desplegables con mensajes, lo más básico. Con MFC, la cosa creo que se simplifica, el problema es que no encuentro un tutorial por ninguna parte, creé un proyecto con Microsoft Visual Studio 2005 para MFC, pero no tengo ni idea de como empezar.

    Agradecería vuestros comentarios acerca de la opción más adecuada, y también que me pasarais algún tutorial o enlace. GRACIAS.
    viernes, 11 de septiembre de 2009 9:39

Respuestas

Todas las respuestas

  • Trabajar directamente con win32 es un "pain in the ass", como dicen los americanos, y más si vas a trabajar con bases de datos, lo que casi también te vale para MFC, en el que la curva de aprendizaje es todavía más cerrada. Hazte cuenta de que vas a necesitar de 6 meses a un año para sentirte cómodo programando con esto, y si vas a hacer un uso intensivo de bases de datos sinceramente, mejor que te olvides de C++ como no uses C++Builder.

    Yo casi me atrevería a decirte que escogieras .NET y C# más que C++. El acceso a una pistola de lectura de RFID no te va a suponer ningún problema desde .NET, y si así fuera te haces una DLL en C++ y Win32 y arreando que es gerundio.

    MS publica el código fuente de Worpad http://msdn.microsoft.com/es-es/library/51y8h3tk(VS.80).aspx
    Esto también te puede servir: http://msdn.microsoft.com/es-es/library/482ck6x8(VS.80).aspx
    Y aquí tienes los "tutoriales" de MS para tareas: http://msdn.microsoft.com/es-es/library/482ck6x8(VS.80).aspx
    Y quizá sea éste el que más te valga de todos: http://msdn.microsoft.com/en-us/library/6asz720a(VS.80).aspx

    Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/
    viernes, 11 de septiembre de 2009 15:12
    Moderador
  • Gracias RFOG, te explico:

    El programa de gestión del almacén ya lo tenía hecho, y está hecho en C, pues dispongo del lector fijo RFID XR480 en la universidad, y su API está en C, no tengo otra opción. Para la base de datos uso MySql, de forma sencilla, tengo dos tablas, una con el ID de los productos, sus existencias, su descripción y su localización en el almacén, y otra tabla con el Id de producto y la descripción pertinente asociada. La interfaz gráfica sería simplemente para introducir id y descripciones manualmente en la tabla citada, mostrar a petición del usuario alguna de la dos tablas para ver su contenido y tener alguna opcion q permita simplemente activar la funcion q me realiza el inventario(función que está implementada).

    ¿ Q me decis de nuevo sobre el uso de MFC o WinApi32?

    Por otra parte, un amigo me ha dicho q puedo hacer lo siguiente: Mi programa gestor de almacén, lo hago DLL, y lo invoco desde una aplicación echa en C Sharp, que será la aplicación gráfica. Según me ha dicho, se invocan los metodos de la clase de la forma normal en C Sharp, el problema es el intercambio de variables entre la clase en C y la aplicación en C#.

    Perdonen si encuentran ambiguiedades, estoy empezando con este tipo de asuntos, agradezco vuestra ayuda.
    jueves, 17 de septiembre de 2009 9:52
  • Quizás sea la mejor opción en cuanto a facilidad la recomendación de tu amigo, siempre que esa DLL exporte las funciones en formato C y no C++ (que no tenga ni clases ni funciones de igual nombre pero diferentes parámetros).

    Para acceder a una DLL de C desde .NET es relativamente fácil siempre que los objetos que pases con las funciones no sean demasiado complejos:

    http://msdn.microsoft.com/es-es/library/aa446536(en-us).aspx
    http://msdn.microsoft.com/es-es/library/aa287781(VS.71).aspx

    O mejor aún, créate una DLL en C++/CLI que envuelva ese código en C y luego usas esa DLL como si fuera de .NET:
    http://msdn.microsoft.com/es-es/library/aa287781(VS.71).aspx
    Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/
    viernes, 18 de septiembre de 2009 9:16
    Moderador