AutoIt en Español
Bienvenido al foro de Autoit3 en Español.

Aquí encontrarás la documentación oficial del lenguaje y muchos otros recursos relacionados.

Mis mejores deseos de éxitos!

Cómo Crear Dll para Autoit

Ver el tema anterior Ver el tema siguiente Ir abajo

Cómo Crear Dll para Autoit

Mensaje  Admin el Mar Ago 31, 2010 5:53 pm

Hola mis amigos!

Como seguramente los que inician autoit tienen necesidad de utilizar(crear) sus propias Dll para sus proyectos, me ha parecido bien describir de manera muy práctica y paso a paso como crear una dll y usarla en Autoit. Manos a la obra!

Supongamos que queremos hacer una dll en BorlanC++ V.6 por ejemplo, que sume dos números enteros y devuelva el valor de esa suma. Las funciones dentro de una dll que podemos utilizar se denominan "funciones exportables" así que crearemos la función exportable: int Add(int x, int y)

Práctica:

Paso1. Abrimos Borlan C++ (esto fué testeado en la versión 6)

Paso 2. Clic en menú File|New|Other|DLLWizard (Abrimos el asistente para crear librerias)

Paso 3. Dentro de la ventana de DLLWizard, seleccionamos como "Source Type": C y desmarcamos todas las casillas de la derecha, click en "OK", se creará una plantilla por defecto.

Paso 4. Nos aseguramos que el código siguiente esta puesto por defecto:

#include

#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
return 1;
}

Paso 5. Para construir nuestra función de exportación escribimos lo siguiente:

extern "C" {
__declspec(dllexport) int Add(int a, int b) {
return a + b;

} }

Notas: La función como tal es:

Add(int a, int b) {

return a + b;

}

Paso6. Clic en menú Project|Build Projectn

Nota: de esta forma quedó creada nuestra dll. Es importante observar que los nombres
de las funciones exportables por defecto en Borlan C++ (usan __cdecl) comienzan con un guión balo (_), en nuestro caso sería: _Add.

Nota: En la carpeta bin del directorio de Borlan C 6 podemos encontrar una aplicación
de MS-DOS llamada impdef.exe con la cual podemos saber el nombre de las funciones
de exportación de una dll. Para ello abrimos una ventana de MS-DOS (Win R y teclamos cmd ) y nos colocamos en el directorio de la DLL creada, una vez allí escribimos en el promt del CMD : impdef milista.def miDllcreada.dll (donde miDllcreada.dll es el nombre de la dll )se creará un archivo de texto milista.def el cual lo abrimos con el Scite, por ejemplo, y allí podemos ver nuestra función de exportación tan como se debe llamar desde autoit.

AHORA VAMOS A LLAMAR LA DDL DESDE AUTOIT

Paso 1. Abrimos un nuevo fichero fuente (*.au3) en el Scite, por ejemplo, ponemos lo siguiente:

Global $var = DllCall("miDllcreada.dll","int:cdecl","_Add","int",50,"int",20)

MsgBox(0,"",$var[0])

Notas: Utilizamos la función DLLCall para cargar la Dll (también podríamos haber usado DLLOpen y pasarle el apuntador luego a DLLCal). Obervar que el valor de retorno debe aparecer con la cadena :cdecl adicionada, porque el método de llamada por defecto en BorlanC++ es __cdecl. Si quisiéramos utilizar en Autoit el sufijo :stdcall tenemos que declarar explícitamente en BorlanC++ que vamos a usar este método de llamada, así nuestra función quedaría:

extern "C" {
__declspec(dllexport) int __stdcall Add(int a, int b) {
return a + b;

} }



Paso final: estudiar y seguir aprendiendo!
avatar
Admin
Admin
Admin

Mensajes : 38
Reputación : -35
Fecha de inscripción : 12/12/2009

Ver perfil de usuario http://autoitespa.espanaforo.com

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.