Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Una ayuda para hacer un IDE

Iniciado por HaltedMode, 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

HaltedMode

                                ¡Hola a todos!. Vamos a ver, mi caso es que estoy intentando hacer un IDE para el genial Compilador Gratuito de Borland "Command Line Tools" que seguro que practicamente todo el mundo ya tendra. El caso es que quiero incluirle coloreado de sintaxis, code-completion y class browser (eso en principio, luego si surgen mas cosas...), hasta ahi sin problemas, pero mi duda llega a la hora de compilar. Puedo mandar el fichero(ficheros) fuente al compilador, pero en el hipotetico caso de que diese errores de compilacion, ¿cómo puedo capturar la lista de errores desde el compilador y mostrarla en mi ventana de windows?
Muchas gracias de antemano. Chao.

[ Este Mensaje fue editado por: HaltedMode el 2002-08-22 03:39 ]                                

DraKKaR

                                Pues para pillar la salida del compilador, se me ocurre que podrias redireccionar la salida del ejecutable a un fichero y luego leer del fichero los datos que te interesen y tratarlos como te de la gana.

ej:
compilador.exe > fichero.log

Puede ke sea un poco chapucero meter un fichero de inercambio por medio de las 2 aplicaciones, por lo ke se me ocurre ke tal vez podrias redireccionar la salida del compilador a la entrada de un programa externo ke recogiera los datos y se los mandara al IDE, tal vez en forma de mensajes del sistema.

compilador.exe | leelog.exe

donde leelog.exe transmitiria al IDE el log procesado con la salida de compilador.exe y el IDE la trataria como kisiera.

Me he explicado bien? Demasiado fantasiosa esa segunda opcion?
Puede ke la primera sea la mejor opcion por su simplicidad, pero la segunda si la consigues hacer me pone mas caxondo ;P                                

HaltedMode

                                Gracias por contestar DraKKaR.
Lo del Log era lo que me habia planteado, pero, como tu dices, eso de meter el fichero de por medio no queda muy bonito :sonriendo:.
Lo segundo que comentas es exactamente mi problema, en vez de orientar la salida hacia algun programa (leelog.exe), mejor la oriento directamente hacia mi propio IDE, el caso es ¿cómo?. He leido por ahi algo ecarca de una herramienta de la API de Microsoft llamada "pipes" o algo parecido, que se supone, deberia servirme, si alguien sabe algo...                                

DraKKaR

                                Efectivamente, a eso me referia. Yo te habia hablado de mensajes pero tambien puedes usar pipes. Yo hice un programa para comunicar distintos procesos de un programa y la cosa iba bastante bien. Pero lo ke no he hecho es comunicar distintos programas, pero se puede. Si te interesa para algo te puedo mandar mi programa aunke no sea exactamente lo ke buscas.                                

Juan Mellado

                                Hola HaltedMode.

Tiene un ejemplo que puedes tomar como punto de partida en las páginas de Microsoft:

http://support.microsoft.com/default.aspx?...;EN-US;q190351&

Básicamente: usa los campos hStdInput, hStdInput y hStdError de la estructura STARTUPINFO que le pases a CreateProcess() para ejecutar el compilador con los handles de los pipes que te crees.

Busca hStdInput (o alguno de esos otros campos) en la web para ver más ejemplos.

Saludos                                

MFlores

                                Hola a todos,

No sería el primer compilador que deja ficheros intermedios.  Si lo dejas en el directorio temporal no passa absolutamente nada, si quieres puedes borrarlo para no dejar rastro del delito.

Esto te va a funcionar, deja el esfuerzo de desarrollo para el resto del IDE que tiene tela.

Un saludo,
MFR                                

HaltedMode

                                [DraKKaR]
 Por supuesto que me interesa el codigo, toda ayuda es poca y se agradece.

[Juan Mellado]
 Gracias por la URL, me vendra muy bien, el caso es que al ser procesos debo saber cuando empiza exactamente a emitir la lista de errores para poder capturarla ¿no?, es decir que deben estar bien sincronizados y lo peor debo saber el funcionamiento interno del compilador, o eso pienso yo, y si es asi, puede suponer un problema saber como trabaja el compilador.

[MFlores]
 Si le pongo al compilador las opciones maximas de debug, entonces se concretamente  en que fichero aparece la lista de errores, es probable que en primeras versiones lo haga con el LOG, aunque lo cierto es que si hay una manera mas elegante de hacerlo, intentare aplicarla (y lo del LOG queda feo, aunque el usuario nunca llegue a enterarse de que lo ha creado :sonriendo:). Eso no quita lo evidente, el mayor esfuerzo lo centrare en el code completion y demas menesteres :sonriendo:.

Gracias a todos por la ayuda.                                

DraKKaR

                                Yo estoy con MFlores, no es ningun delito usar ficheros intermedios. Incluso el Visual C los tiene. Pero bueno, te enviare eso de todos modos, cuando lo encuentre XDDD                                






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.