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

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

Volver arriba

- Temas similares

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