La Web del Programador: Comunidad de Programadores
 
    Pregunta:  998 - CARGAR EXE´S DE C++ QUE RETORNAN VALORES EN VB
Autor:  Luigi
Hola soy Luigi estudiante de Ingeniería de Sistemas.
Estoy actualmente realizando un programador de memorias EPROM (hardware y su respectivo software)controlado por el puerto paralelo LPT1, el hardware ya está creado, el software también está listo en C y Visual Basic 5.0, pero la velocidad de lectura en VBasic(con la librería InpOut32.dll) es muy pobre(el código ya está ´optimizado´ para funcionar lo más rápido posible), la lectura completa de una memoria dura alrededor de 3 horas.
En C el código está escrito en asembler con(asm{})yes mucho más rápido. La idea es crear una función que reciba y retorne valores en C, compilarla y llamar el EXE desde Vbasic y tomar el valor retornado.
Ya probé con el SHELL de Windows y no he podido tomar valores devueltos, además de que abre la ventana del emulador de DOS de windows.

Quisiera saber si existe otra forma de llamar ejecutables de DOS que retornen valores o si existe otra manera de corregir el problema de la velocidad en Visual basic.
Agradezco la atención prestada y espero que pueda alguien colaborarme.


  Respuesta:  Alejandro de Jongh Puente
Mira, yo tuve un problema similar conectando unas cajas registradoras a mi PC. Al final termine siguiendo los pasos:
1- Cree una DLL en Visual C++, con todas las fns de la tarjeta de conexion (en tu caso lo puedes hacer + facilmente, basta con incluir el .obj de tu programacion en ASM)
2- Hice la interfaz de VB, y en ella utilizo las fns de la DLL que habia construido.

Francamente no se si esa es la solucion optima, pero fue lo mejor que pude encontrar