FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Llamado a una función de una dll
Hola a todos
Alguien me puede ayudar? Necesito utlizar una función específica de una dll pero no se como invocarla ni como invocar la dll. |
#2
|
||||
|
||||
Tu ajustas el nombre correcto de la función, los parámetros, el tipo de valor que devuelve y el nombre de la dll a tus necesaidades. // Saludos |
#3
|
||||
|
||||
Es importante tener en cuenta también el modelo de llamada a usar, pues determina la forma en que se pasan y liberan los parámetros de la función, muy importante si la dll no está escrita en delphi.
El mas extendido de los modelos de llamadas es StdCall, pues es el que se usa para comunicarse con el API de windows. No logro recordar en este momento si stdcall debe ponerse antes o después de la clausula external, o si puede ponerse en cualquier parte. Eso ya lo dejo a vos. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#4
|
|||
|
|||
Error al invocar dll
Muchas gracias por responder.
Ya he utilizado esta estructura pero al compilar me sale el siguiente error: Field definition not allowed after methods or properties |
#5
|
||||
|
||||
No puedes declarar funciones externas dentro de la declaración de una clase. Deben ser funciones sueltas.
// Saludos |
#6
|
|||
|
|||
Disculpen mi ignorancia pero en que lugar debo dejar la declaración
function cargar_dll(cadena: string): string; stdcall; external 'pagos.dll'; |
#7
|
||||
|
||||
Por ejemplo
Es decir, en cualquier lugar donde declararías una función cualquiera que no sea método de una clase. // Saludos |
#8
|
|||
|
|||
Hola a todos...
Que pena por molestar tanto. Ya coloque la declaración del llamado de la dll en el lugar correcto, ahora el problema es que cuando ejecuto el programa se presenta el error No encuentra el punto de entrada del procedimietno cargar_dll en la biblioteca de vínculos dinámicos pagosrm.dll. Esa libreria fué instalada para correr una aplicación en VBasic y el programa de prueba funciona, yo necesito utilizar esta función para recibir la respuesta correspondiente. |
#9
|
||||
|
||||
¿La función cargar_dll realmente existe en pagosrm.dll? Es decir, el error te dice simple y llanamente que en esa biblioteca no hay ninguna función con ese nombre. Muy posiblemente tenga otro nombre.
// Saludos |
|
|
|