Jawin: Llamar metodos de una DLL con java

Jawin es una de las tantas librerias que se puede utilizar para poder trabajar los metodos de una DLL desde java. Lo mas comun era trabajar con JNI pero esto implicaba tener los fuentes de la DLL para poder realizar las modificaciones y volver a realizar la compilacion, algo tedioso en algunos casos.

Bueno una forma de utilizar esta libreria es creando una pequeña DLL en C con un metodo basico, por ejemplo el metodo “suma” que implica tener dos variables de entrada del tipo entero y retornar un valor entero. Para esto configuré NetBeans con el compilador gcc para poder desarrollar codigo en C/C++ siguiendo este manual, para luego crear un proyecto del tipo “C/C++ Dynamic Library”. Una vez creado este proyecto agrego un fuente al cual llamare “Suma.c” y dentro de este archivo creamos el metodo antes mencionado, quedando de la siguiente manera:

jawin_01

Como veran es algo simple y basico, ahora solo nos queda construir la DLL, para esto click derecho sobre el proyecto y elegimos “Build”, y listo ya tenemos generada nuestra DLL.

Ahora para poder utilizar el metodo de la DLL desde java, hacemos lo siguiente:

  • Primero agregamos la libreria jawin al proyecto (jawin.jar)
  • Luego segun nos indica la documentacion copiamos el archivo “jawin.dll” en el directorio “C:\windows\System32”.

Y listo ahora empezamos a escribir el codigo que llamaria al metodo, algo asi como esto:

jawin_02

Como podran ver el nombre de mi DLL es “LibSuma.dll”, tener en cuenta que el nombre de la dll lo da el nombre del proyecto(anteponiendose el sufijo “lib”, pero esto lo pueden variar en las propiedades del proyecto), y el metodo, en este caso “suma”; hago la invocacion dandole los parametros antes mencionados y en la variable “g” recepciono el resultado y listo. 

jawin_03

Cabe aclarar que yo puse solo el nombre de la libreria y no toda la ruta porque agregue la ruta de mi libreria a mi PATH. Otra forma seria colocar la libreria generada en “C:\Windows\System32”; o de lo contrario colocan toda la ruta de la libreria incluida el nombre.

Como veran para este caso es algo sencilo de trabajar y no tan tedioso, yo ahora estoy en un proyecto algo mas grande trabajando con esta libreria y la verdad me esta dando resultados.

Autocomplete = “off” con Struts

Uno de los pequeños inconvenientes que se me presento al desarrollar aplicaciones web y utilizar etiquetas struts, era la compatibilidad con algunos atributos. Regularmente cuando trabajo con cuadros de texto siempre agrego el atributo “autocomplete = off” esto para que no se almacene el texto que haya escrito con anterioridad (en algunos casos es necesario). Pero al utilizar etiquetas struts este atributo no esta o por lo menos no encontre alguno analogo a este; entonces decidi probar un codigo en javascript y agregarlo dentro de mi formulario quedando de la siguiente forma.

Para empezar este es el código javascript 

autocomplete_01

Una vez que tenemos ya el código lo que hacemos ahora es agregarlo en el “body” dentro del atributo “onload” de la siguiente manera:

autocomplete_02

y ahora solo nos queda agregarlo en el formulario que tiene etiquetas struts para que todos lo cuadros de texto cumplan este atributo, quedando de la siguiente forma:

autocomplete_03

De esta manera pude utilizar este atributo, espero les sea de utilidad.

PD: Fijense que en struts para representar el atributo “Id” se hace con “styleId”, esto para que no haya confusiones.

Tutorial Python II

Como sabran Python ha sido, es, y seguira siendo uno de los lenguajes de programación dinámicos mas importantes y usados en el mundo del desarrollo de software y que mejor manera de aprender este lenguaje con una buena guia. Revisando el blog Mundo Geek, me tope con un post en donde el autor Zootropo hace referencia a la actualización de su libro “Python para todos“. Sinceramente es un libro muy interesante sobre todo por el contenido, es simple, conciso y trata de abordar los aspectos necesarios como para poder empezar a programar con este excelente lenguaje, y porque no, para los que ya tenemos algun conocimiento tambien nos seria de gran ayuda; se los recomiendo.

  

Hackeando windows con python??

Hace ya un tiempito que deje escribir algo de codigo con python y bueno decidi retomarlo, en un momento esos en donde te sientes algo melancolico justamente por no hacer algo con este maravilloso lenguaje jeje. Bueno, estube con un pariente tratando de mostrarle alguna bondades de este lenguaje y bueno el queria ver la forma de como trabajar con sockets y ver que tan facil era, dado que el estaba trabajandolo en lenguaje C. A decir verdad trate de hacerlo lo mas practico posible y mostrarle alguna posibilidades. Trabaje un pequeño aplicativo simple en el cual se conectaba a otra maquina de forma remota y ejecutaba algunos comandos de una manera tan simple que ni el mismo lo creyo. La inquietud que el tuvo fue que el aplicativo lo probamos tanto en una maquina con Windows y una con Linux y vio la gran facilidad con la que se puede vulnerar Windows, siendo este una simple aplicacion que cualquier persona con conocimientos en python lo podria realizar. Claro esta que esto no paso con Linux, aki una pqueña muestra de lo que se podria relizar.

Que quede claro que esto es solo una forma de desarrollo y no se malinterprete. Ahora los fines con que se use este lenguaje o cualquier otro quedaria a disposicion de cada uno.