Emplear librerías desarrolladas en Delphi para una aplicación Notes

Estoy desarrollando una aplicación Notes y necesito utilizar librerías desarrolladas en Delphi 5.0. Mi librería (llamada Project1.dll) tiene una única función que es Metodo1... ¿cómo puedo utilizarla desde Lotus Notes?

1 Respuesta

Respuesta
1
Tienes que hacer la declaración de las funciones, con la siguiente sintaxis:
Declare [ Public | Private ] { Function | Sub } LSname Lib libName [ Alias aliasName ]
( [ argList ] ) [ As returnType ]
Por ejemplo:
Declare Function Metodo1 Lib "project1.dll" (argumentos) _
As Tipo
Luego solo tienes que llamar a la función Metodo1.
Perdona por darte tanto la lata... el caso es que he probado con las librerías que vienen con Lotus Notes y si funciona correctamente, pero no con la mía. ¿Puede ser porque no acepte librerías desarrolladas en Delphi?
He probado con lo que me dices y al llamar a la función Metodo1 me devuelve el error:
"External function not found".
¿Sabes por qué puede ser?
¿El error te da al hacer el Declare o al ejecutar la función?
Probablemente tengas que meter el path entero del fichero dll:
Declare Function Metodo1 Lib "c:\Proyecto\project1.dll" (argumentos) _
As Tipo
En la ayuda del designer, si en el indice buscas "DLL" ten vienen ejemplos sobre como hacerlo.
El error me da al ejecutar la función porque el declare lo hace bien incluso metiendo el path entero donde tengo la dll...
Mirare en la ayuda a ver que encuentro...
Asegurate de que en el declare el tipo es igual al de la función en la dll, y que el número de argumentos y su tipo están bien.
Ya he comprobado los tipos y argumentos, pero sigue dando error, ¿por qué puede ser?
Lo único que se me ocurre es que pueda ser un problema con el nombre de la función, se que algunos el Notes no los traga, normalmente si tienen guión bajo. Este no es el caso, pero prueba a darle un Alias a la función al hacer el declare.
Prueba también a registrar la dll en el sistema, con el rgsvr32.exe, aunque no tendría por que.
¿El código se ejecuta en el cliente o en el servidor?
Podría ser. Yo nunca he usado librerías de Delphi, siempre de C y me han funcionado bien.
De todas formas te recomiendo que mires en la web de Notes, en el foro, quizás ahí encuentres algo, en la ayuda no parece decir nada. La web es:
www.notes.net.
Entra en el Foro de las versiones 4.6 y 5 y busca "Delphi" a ver si viene algo.
Hola, ya he conseguido que me funcione la DLL. Ahora me surge un problema, tengo que pasarle (a la dll) un string con el que debe buscar un valor en una base de datos y devolverme otro valor, pero al pasarle el string en la librería me aparece en blanco y me 'explota' la aplicación. ¿Sabes por qué puede ser? ¿Cómo debo utilizar los string en la librería?
Gracias.
Siento no haber contestado antes, he estado de vacaciones.
Los strings debes pasarlos a la librería entre comillas dobles, y si están en una variable, el nombre de variable sin comillas, asegurándote que es de tipo string.
La variable que recibe los datos en la dll también ha de ser de tipo string, asegúrate de que están bien definidas, no debería darte problemas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas