A razon de una noticia aparecida en barrapunto, me he inspirado por hecharme a recuperar viejos tiempo de programación en Pascal.
En esa noticia se habla de FreePascal (
http://www.freepascal.org/) y Lazarus (
http://www.lazarus.freepascal.org/index.php), el primero vendria a ser el pascal de toda la vida, mientras que el segundo es el delphi, tambien conocido como Visual Pascal
Lo bueno de todo eso, es que se pueden compilar aplcaciones en cualquier sistema, si estas en linux conseguiras un binario para ese sistema, mientras que en windows conseguiras un exe, funciona (o eso me parece) bajo GTK y la interficie de Lazarus es muy parecida a la de Delphi..
Me ha estrañado no encontrar ningun post al respecto, parece ser que algunas compilaciones hechas con estas herramientas pueden igualarse en velocidad a algunas hechas en C (típica comparación.. realmente vale la pena esa comparación?)
He estado trasteando un poco, hace como 12 o 13 años que no toco Delphi (desde la 1.0 o la 2.0) y unos 4 que no uso Turbo Pascal, asi que tengo todo muy olvidad, pero he intentado hacer una aplicacion en windows bastante basica, una GUI que me permita convertir los MP3 a OGG con el BeSweet facilmente... si, se que hay el BeSweet GUI, pero bueno...
Los resultado han sido bastante buenos, operaciones con cadenas, conversiones entre strings, chars y integers.... algunas llamadas a la api para ejecutar besweet... etc...
Os animo a que almenos lo probeis, que quizas os reenganchais (que muchos seguro que ya lo estubisteis) al igual que me esta pasando a mi...
De paso.. si alguien me podria hechar una mano...
tengo un problema al llamar el ShellExecute de la API pero no tengo ni idea de que puede ser, creo que es la variable PChar que me pide...
Un PChar no es mas que un puntero a un Char (al igual que en C), pero trabajo con strings la mayor parte del programa... creo que el problema viene dado a la hora de convertirlo... lo que he encontrado es este metodo:
var
myString : string;
myCharPtr : PChar;
i : Integer;
begin
// Create a string of Char's
myString := 'Hello World';
// Point to the first character in the string
i := 1;
myCharPtr := Addr(myString[i]);
// Display all characters in the string
while i <= Length(myString) do
begin
ShowMessage(myCharPtr^);
Inc(i);
Inc(myCharPtr);
end;
end;
Pero nada, la aplicacion peta... en el Shellexecute se usa el metodo PChar('programa.exe') para ejecutarse, pero para la coletilla que debe ser otra PChar es donde tengo el problema... alguien me sabria orientar o ayudar?
Gracias
---[Editado]------------- - -- - - -
Ya he conseguido llamar a un proceso sin muchos problemas, una libreria llamada Process y que me permite usarla en las distintas plataformas... ademas de permitirme capturar mensajes del programa en la consola (ideal para lo que quiero yo)
En todo caso, creo que lo que hacia mal anteriormente era la conversión a PChar, creo que con un simple PChar(cadena) lo habria resulto... pero bueno... ahora me va de perlas con el Process
Por cierto... tela lo que pesan los ejecutables... el programita se va a 6Mb por hacer nada... :\
Alguien conoce algun parametro de compresion de binario en Freepascal?