<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5968860806553325191</id><updated>2012-02-12T04:11:59.170-08:00</updated><title type='text'>El Blog de Gemu</title><subtitle type='html'>$ This blog is starting, please wait..▓</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://g3mu.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968860806553325191/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://g3mu.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Gemu</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5968860806553325191.post-34609932868445622</id><published>2007-06-23T15:15:00.000-07:00</published><updated>2007-06-23T15:26:47.282-07:00</updated><title type='text'>Microsoft Internet Explorer........en Linux?</title><content type='html'>Así es, gracias a los avances de Wine en compatibilidad es posible instalar Internet Explorer original sobre Linux.&lt;br /&gt;El proceso en si se vuelve un tanto complicado si lo haces de forma manual, IE requiere de muchos detalles y retoques por uno y otro lado, pero esto esta solucionado gracias al proyecto &lt;a href="http://www.tatanka.com.br/ies4linux/"&gt;IEs4Linux&lt;/a&gt;, con esta utilidad se vuelve bastante trivial el proceso de instalación y puesta en marcha. incluyendo icono en el desktop :P.&lt;br /&gt;&lt;br /&gt;Pagina Oficial del proyecto&lt;br /&gt;&lt;a href="http://www.tatanka.com.br/ies4linux/page/Es/P%C3%A1gina_Inicial"&gt;http://www.tatanka.com.br/ies4linux&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;¿Por que instalar IE en Linux?&lt;br /&gt;Mientras exista IE y su intento por imponer nuevas tecnologías no estandarizadas en la web y mientras hayan diseñadores que crean que IE es el único navegador, no tendremos el control total con nuestro Firefox xD y sobre todo en sistemas de empresas desarrollados sobre entornos web donde no podremos desecharlos simplemente por no ser compatibles con el estándar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968860806553325191-34609932868445622?l=g3mu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://g3mu.blogspot.com/feeds/34609932868445622/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5968860806553325191&amp;postID=34609932868445622' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968860806553325191/posts/default/34609932868445622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968860806553325191/posts/default/34609932868445622'/><link rel='alternate' type='text/html' href='http://g3mu.blogspot.com/2007/06/microsoft-internet-exploreren-linux.html' title='Microsoft Internet Explorer........en Linux?'/><author><name>Gemu</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968860806553325191.post-2368237189882004249</id><published>2007-06-23T14:58:00.000-07:00</published><updated>2007-06-23T15:14:26.370-07:00</updated><title type='text'>Ensamblador (asm) en C</title><content type='html'>Para los que necesiten insertar código ensamblador en C/C++ o bien refrescar la memoria, he encontrado unas guias que considero muy fáciles de entender y aplicar, no son lo mas actual pero si muy bien redactadas:&lt;br /&gt;&lt;br /&gt;Tutorial de ASM por Nacho Cabanes&lt;br /&gt;&lt;a href="http://www.nachocabanes.com/tutors/asmperif.htm"&gt;http://www.nachocabanes.com/tutors/asmperif.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Técnica de inserción de asm en C&lt;br /&gt;&lt;a href="http://tuassembler.googlecode.com/svn/trunk/Codigo/TUAssembler/Documentacion/c-asm.pdf"&gt;&lt;span style="text-decoration: underline;"&gt;http://tuassembler.googlecode.com/svn/trunk/Codigo/TUAssembler/Documentacion/c-asm.pdf&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nota: La inserción de ASM en C no es estándar, así que cada compilador tiene sus diferencias en torno a esto, siempre revisa la documentación de tu compilador si no estas seguro.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968860806553325191-2368237189882004249?l=g3mu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://g3mu.blogspot.com/feeds/2368237189882004249/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5968860806553325191&amp;postID=2368237189882004249' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968860806553325191/posts/default/2368237189882004249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968860806553325191/posts/default/2368237189882004249'/><link rel='alternate' type='text/html' href='http://g3mu.blogspot.com/2007/06/ensamblador-en-c.html' title='Ensamblador (asm) en C'/><author><name>Gemu</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968860806553325191.post-7415611765259792058</id><published>2007-06-20T13:14:00.000-07:00</published><updated>2007-06-20T22:04:01.723-07:00</updated><title type='text'>Aprendiendo a programar en Visual Basic 6.0 y anteriores</title><content type='html'>Este no pretende ser un tutorial de aprendizaje ni nada por el estilo, solo es una pequeña referencia y recomendaciones que buscan orientar a principiantes y evitar que se pierdan en el camino :P, todo esto basado en mis propias experiencias.&lt;br /&gt;&lt;br /&gt;Lo primero es aclarar algunas cosas para los que desean crear atractivos entornos gráficos, ventanas, etc., si bien esto es posible de forma sencilla tendrás que esperar un tiempo antes de lanzarte en ello. ¿ Por que ?, porque cuando tocas los gráficos estas tratando directamente con un objeto especifico y se da por entendido que ya manejas el lenguaje…y si aun no lo dominas  tendrás muchas dificultades.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿ Por donde comenzar ?&lt;/span&gt;&lt;br /&gt;Esa fue la primera pregunta que me hice cuando comencé con esto, tenía la idea de querer hacer programas con ventanas, botones, música, etc. quería hacer muchas cosas pero no sabía como ni con que. Es así como indagando por ahí encontré sobre el lenguaje Visual Basic que muchos usaban fluidamente. Después de 80MB de descarga y unas 2 semanas de espera con un MODEM de 56kbps :P logre descargarlo e instalarlo, mi primera impresión fue al ver una ventana “formulario/forma” ya creado y listo para diseñar, inserte algunos códigos copiados de una web y probé lo que hacia, todo OK pero seguía sin entender nada y los manuales que encontraba solo me hablaban de objetos, propiedades y API ¿ y el lenguaje donde ?.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¡ Quick Basic ! &lt;/span&gt;&lt;br /&gt;Jajaja, quien diría que a estas alturas aun es útil este intérprete :P, lo que intento decir con esto es que la mejor forma de aprender Visual Basic a mi parecer es eliminado lo primero “Visual” y comiences a aprender “Basic”!, ¿Por qué?, por la simple razón que así aprenderás el Lenguaje de mejor manera y sin liar con el infinito mundo de la POO y los componentes externos :S. Luego cuando tengas mas soltura podrás migrar a Visual Basic con MUCHOS menos problemas.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿Qué es QuickBasic?&lt;/span&gt;&lt;br /&gt;QuickBasic es uno de los primeros lenguajes de la línea “Basic” (el actual Visual Basic”) y su lenguaje es casi exactamente el mismo e incluso a veces compatible directamente con VB.&lt;br /&gt;QuickBasic es un “Interprete” esto quiere decir que no te genera un programa ejecutable .exe sino que solo ejecuta tu código (hay compiladores de Basic que generan .exe pero tratar esto se aleja del objetivo del texto) y en este caso su interfaz es dentro de una ventana de DOS.&lt;br /&gt;A pesar que QuickBasic parece anticuado puedes hacer muchas cosas con él, desde un simple “Hola Mundo” hasta juegos 2D y 3D tipo DOOM :P.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿Dónde conseguir QuickBasic?&lt;/span&gt;&lt;br /&gt;Lo puedes conseguir fácilmente buscando en la red, yo me he adelantado y encontre lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ring-apotheke.com/pkworld/qbasic/downloads.htm"&gt;http://www.ring-apotheke.com/pkworld/qbasic/downloads.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bajar la ultima versión 7.1 o bien la 4.5.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿Cómo aprendo a programar en QuickBasic?&lt;/span&gt;&lt;br /&gt;Para programar en QuickBasic también tienes mucha información en Internet, unas de las mejores páginas y autores son los siguientes:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.nachocabanes.com/"&gt;http://www.nachocabanes.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.nachocabanes.com/basic/index.php#quees"&gt;http://www.nachocabanes.com/basic/index.php#quees&lt;/a&gt; (Seguir algunos de los links, recomiendo el curso que redacto el mismo “nacho cabanes”).&lt;br /&gt;&lt;a href="http://www.elguille.info/"&gt;http://www.elguille.info/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.elguille.info/vb/cursos_vb/basico/indice.htm"&gt;http://www.elguille.info/vb/cursos_vb/basico/indice.htm&lt;/a&gt; (Leerlo completo)&lt;br /&gt;&lt;br /&gt;Y como ultima recomendación, nunca dejar de investigar cosas nuevas ;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968860806553325191-7415611765259792058?l=g3mu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://g3mu.blogspot.com/feeds/7415611765259792058/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5968860806553325191&amp;postID=7415611765259792058' title='22 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968860806553325191/posts/default/7415611765259792058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968860806553325191/posts/default/7415611765259792058'/><link rel='alternate' type='text/html' href='http://g3mu.blogspot.com/2007/06/aprendiendo-programar-en-visual-basic.html' title='Aprendiendo a programar en Visual Basic 6.0 y anteriores'/><author><name>Gemu</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968860806553325191.post-8467261635687579928</id><published>2007-06-19T21:58:00.000-07:00</published><updated>2007-06-19T22:52:42.411-07:00</updated><title type='text'>Compartiendo datos entre VB6 y C/C++</title><content type='html'>Como siempre es de utilidad implementar módulos escritos en otro lenguaje a tu interfaz VB, es que explico en breves pasos como crear una DLL en VC++ (aplicable a otros compiladores) para linkearla desde VB6.&lt;br /&gt;&lt;br /&gt;Los pasos son los siguientes:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.&lt;/span&gt; En VC++ creamos una dll tradicional (librería dinámica) y procuramos declarar nuestras funciones dentro el bloque:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;extern&lt;/span&gt; "C"&lt;br /&gt;{&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  &lt;span style="color: rgb(102, 102, 102);"&gt;funciones&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.&lt;/span&gt; Creamos las funciones pero considerando que el tipo de llamada debe ser WINAPI (que es la estándar de las APIs de windows) y tomando precaución de las compatibilidades entre los tipos de variables de VB y C++ que son muy diferentes.&lt;br /&gt;Para que tengas una idea detallo algunos tipos y sus equivalentes:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;VB           Bytes     C/C++&lt;br /&gt;----------------------------------------------&lt;br /&gt;Byte          1        char&lt;br /&gt;Integer       2        short&lt;br /&gt;Integer       2        unsigned short&lt;br /&gt;Long          4        int&lt;br /&gt;Long          4        unsigned int&lt;br /&gt;String        n        char *&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Las cadenas tipo String/char *, pueden ser de n caracteres hasta encontrar un caracter NIL ASCII(0).&lt;br /&gt;&lt;br /&gt;ej:&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;extern&lt;/span&gt; "C"&lt;br /&gt;{&lt;br /&gt;int WINAPI MiFuncion1(&lt;span style="color: rgb(51, 51, 255);"&gt;char&lt;/span&gt; * micadena);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int WINAPI MiFuncion1(&lt;span style="color: rgb(51, 51, 255);"&gt;char&lt;/span&gt; * micadena)&lt;br /&gt;{&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;  strcpy&lt;/span&gt;(micadena, "Hola Mundo desde C!");&lt;br /&gt; return 0; &lt;span style="color: rgb(0, 153, 0);"&gt;// Todo OK&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-weight: bold;"&gt;3.&lt;/span&gt; Luego creamos y agregamos al proyecto un archivo con extensión .def, donde colocaremos la definición que será presentada externamente por la DLL:&lt;br /&gt;&lt;br /&gt;LIBRARY 'Nombre Librería'&lt;br /&gt;DESCRIPTION 'Una Descripción'&lt;br /&gt;EXPORTS&lt;br /&gt;MiFuncion1 @1&lt;br /&gt;MiFuncion2 @3&lt;br /&gt;MiFuncion3 @2&lt;br /&gt;&lt;br /&gt;Donde el @n especifica la cantidad de parámetros que acepta la función.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4. &lt;/span&gt;Ahora y una vez compilada nuestra DLL solo basta linkearla desde la aplicación VB, para ello creamos un nuevo Modulo y declaramos en ella la/las función de la DLL&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Public Declare Function&lt;/span&gt; MiFuncion1 &lt;span style="color: rgb(51, 51, 255);"&gt;Lib&lt;/span&gt; "MiLibreria.dll" (&lt;span style="color: rgb(51, 51, 255);"&gt;ByVal&lt;/span&gt; Nombre &lt;span style="color: rgb(51, 51, 255);"&gt;As String&lt;/span&gt;) &lt;span style="color: rgb(51, 51, 255);"&gt;As Long&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;De esta forma declaramos que existe la función "MiFuncion1" que se encuentra en la librería "MiLibreria.dll" y con 1 parámetro del tipo "ByVal Nombre As String".&lt;br /&gt;&lt;br /&gt;Si quieres ejecutar el proyecto desde el entorno IDE del VB, asegurare de declarar la ruta completa a la DLL ej: ...Lib "C:\MiProyecto\MiLibreria.dll"..., de lo contrario no podrá encontrarla. No así si tienes compilado tu proyecto y tu DLL en el mismo directorio.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5.&lt;/span&gt; Cuando pasas parámetros a tu DLL debes considerar ciertas cosas:&lt;br /&gt;- Las declaraciones deben ser generalmente ByVal, excepto cuando pasas una estructura como parámetro.&lt;br /&gt;- Cuando pasas un String para que retorne un valor en ella DEBES asignarle espacio!!, esto lo logras con la función&lt;br /&gt;&lt;br /&gt;MiString = &lt;span style="color: rgb(51, 51, 255);"&gt;String&lt;/span&gt;(255, &lt;span style="color: rgb(51, 51, 255);"&gt;Chr$&lt;/span&gt;(0))&lt;br /&gt;&lt;br /&gt;o simplemente&lt;br /&gt;&lt;br /&gt;MiString = &lt;span style="color: rgb(51, 51, 255);"&gt;Space&lt;/span&gt;(255)&lt;br /&gt;&lt;br /&gt;Ambas son validas y consiguen su objetivo.&lt;br /&gt;&lt;br /&gt;Cuando obtengas una cadena que hayas establecido desde tu DLL, asegurate de limpiarla de caracteres basura que quedan en el espacio sobrante que le asignaste, esto es porque en C el carácter ASCII(0) se considera fin de cadena pero en VB es valido como un caracter mas, así que tendrás que considerar todo lo que este antes de un Chr(0) como tu cadena y el resto será basura.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968860806553325191-8467261635687579928?l=g3mu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://g3mu.blogspot.com/feeds/8467261635687579928/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5968860806553325191&amp;postID=8467261635687579928' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968860806553325191/posts/default/8467261635687579928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968860806553325191/posts/default/8467261635687579928'/><link rel='alternate' type='text/html' href='http://g3mu.blogspot.com/2007/06/compartiendo-datos-entre-vb6-y-cc.html' title='Compartiendo datos entre VB6 y C/C++'/><author><name>Gemu</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5968860806553325191.post-5847958331186989819</id><published>2007-06-19T21:18:00.000-07:00</published><updated>2007-06-19T21:27:22.579-07:00</updated><title type='text'>De vuelta en vuelta</title><content type='html'>Bueno como nada es para siempre, he decidido volver pero en forma de BLOG :P&lt;br /&gt;Hace mucho tiempo que he estado alejado y espero poder ofrecer aquí buen material y propio como es la costumbre de la casa xD. Aunque como no puedo subir archivos me encuentro algo complicado (descartado megaupload y fileshare por manejar tiempos de caducidad)&lt;br /&gt;Así que vuelvo con nuevo animo y esperando ser de utilidad. ;)&lt;br /&gt;&lt;br /&gt;PD: Si a alguien le interesa un tema en especifico que lo proponga y veo que puedo hacer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5968860806553325191-5847958331186989819?l=g3mu.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://g3mu.blogspot.com/feeds/5847958331186989819/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5968860806553325191&amp;postID=5847958331186989819' title='24 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5968860806553325191/posts/default/5847958331186989819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5968860806553325191/posts/default/5847958331186989819'/><link rel='alternate' type='text/html' href='http://g3mu.blogspot.com/2007/06/de-vuelta-en-vuelta.html' title='De vuelta en vuelta'/><author><name>Gemu</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>24</thr:total></entry></feed>
