¿Que es una DLL?
Una DLL (Dynamic-Link Libraries) es un módulo que contiene funciones y otros datos. Una DLL se carga al ejecutarla al mismo tiempo que se llama a unos de estos módulos. Las DLLs pueden definirse en dos tipos: Las externas y las internas. Las funciones externas pueden ser llamadas por otros módulos. Las funciones Internas solo pueden ejecutarse desde otro archivo DLL.
Ya que el mIRC nos permite hacer llamadas a una DLL, podemos hacer uso de estos archivos para trabajar en mIRC Scripting. Estos archivos DLL tienen una gran utilidad debido a que con ellas se trabaja a mayor velocidad y consigues unos resultados más eficientes.
Y ahora te estarás preguntando ¿Para que sirven exactamente las DLLs? Pues vereis, las DLLs tiene diversas funciones, existen algunas muy famosas como mdx.dll que te permite personalizar de diversas formas el aspecto de los dialogs (como por ejemplo, cambiar el tipo de letra y el tamaño de las opciones) y también hay otras que te permiten cambiar el titulo al completo del mIRC crear MessagesBox de distintos tipos y otras muchas funciones. Exactamente lo que en este artículo se enseñará es a cambiar títulos y a crear MsgBox.
¿Como las uso desde el mIRC?
Las Dll se pueden usar de dos formas, desde un comando /dll o como un identificador $dll, entonces dependiendo de la función que le demos a nuestra dll deberemos usar una forma u otra. Las formas de emplearlas son estas dos:
· Como un comando
/dll Dirección_Dll Función Parámetros
/dll nuestra.dll DllInfo -s
· Desde un identificador
$dll(Directorio_Dll,función,parámeteros)
$dll(nuestra.dll,DllHelp)
¿Cómo las creo?
Personalmente, las dlls que yo he creado han sido todas usando Borland C++ Buldier (del cual podeis descargaros una version de prueba en www.borland.com ) y como estarás suponiendo se escriben en el lenguaje C++. (Todavía desconozco como poderlas programar de otra forma)
Entonces para empezar abrimos el C++ Buldier y le damos a New. Seleccionamos DLL y pulsamos OK. Entonces podemos empezar a escribir el código de nuestra Dll. Esto es un ejemplo de cómo hacer para que aparezca una Caja de mensajes con la frase Hola Mundo!. Esta función se ejecutará mediante el primer medio de ejecución que vimos el de /dll. Bueno aquí esta el código.
#include
extern "C" int __declspec(dllexport) FAR PASCAL HolaMUNDO(HWND mWnd, HWND aWnd,char* data,char*,BOOL,BOOL) {
MessageBox ( NULL, " Hola Mundo!" , "", MB_OK );
}
Este es un ejemplo típico sobre como funciona una función externa en las DLLs, ahora si ejecutamos esta función en un comando /dll nombre.dll HolaMUNDO nos aparecerá un una caja de mensajes que contiene el mensaje Hola Mundo!. En el siguiente ejemplo el comando lo vamos a ejecutar mediante un identificador $dll, mira el código:
#include
extern "C" int __declspec(dllexport) FAR PASCAL HolaMUNDO(HWND mWnd, HWND aWnd,char* data,char*,BOOL,BOOL) {
strcopy(data, "Esta Dll ha sido creada por ^STR|DER^");
}
Esta función nos dará la respuesta de "Esta Dll ha sido creada por ^STR|DER^" como si fuese un comando /echo .¿Pero que puedo ponerle a mi DLL? ¿Nunca el mIRC Scripting te ha sido incapaz de satisfacer alguna necesidad? Posiblemente sí, para eso tenemos las Dlls, para complementar al mIRC. A una Dll le puedes poner todas las funciones que desees siempre y cuando seas capaz de programarlas.
Última ayuda
Bueno, aquí os dejo un par de comandos que podeis usar para vuestra primera dll.
· SetWindowText(mWnd, data); -> Con este comando cambias el titlebar del mIRC por lo que pongas en data
· SetWindowText(aWnd, data); -> Con este comando cambias el titlebar del status del mIRC por lo que pongas en data
· system(data) ; -> ejecuta el programa que pongas en data
Cajas de texto
· MessageBox ( NULL, data ,"MsgBox", MB_OK );
· MessageBox ( NULL, data , "Aviso", MB_ICONEXCLAMATION);
· MessageBox ( NULL, data , "Aviso", MB_ICONQUESTION) ;
· MessageBox ( NULL, data , "Aviso", MB_ICONWARNING) ;
· MessageBox ( NULL, data , "Error", MB_ICONERROR) ;