FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
problema con creacion de DLL
Hola delphiano hace una semana pedi ayuda para encriptar string en triple-DES y me recomendaron el componente DCPcrypt http://www.cityinthesky.co.uk/cryptography.html
Bueno todo funciona perfecto pero ahora necesito encapsularlo en una DLL para poder usarlo en otros lenguajes. Al intentar levantar la DLL desde Delphi me sale un error (Invalid pointer operation). El codigo de la DLL es el siguiente: y el codigo en delphi para levantar la DLL es: supongo que el error es que uso como parametro NIL en vez de SELF al crear el componente pero si colo este ultimo no me compila([Error] des.dpr(13): Undeclared identifier: 'Self'). Espero que alguien me pueda ayudar desde ya muchas gracias Última edición por acertij022 fecha: 20-11-2006 a las 15:22:23. |
#2
|
|||
|
|||
Hola
siempres que crees alguna dll , o intentes llamar a alguna funcion que se encuentra en una dll , no puedes usar tipos strings , has de usar pchars.
y para llamar a la funcion , puedes forzar a pchar .
Última edición por tefots fecha: 20-11-2006 a las 17:47:28. |
#3
|
||||
|
||||
Intente lo que me comentaste usar Pchar en vez de string y me sigue tirando error pero esta ves me tira Acces violation at address 00401C66 in module 'Project1.exe'. Write of address 003809D4
¿que podra ser? |
#4
|
|||
|
|||
Utiliza shortstring en vez de Pchar o strings y no obstante utiliza la unit Sharemem como primera unit de tu dll y de tu programa llamador.
De resto debe de funcionarte bien, por lo menos a mi siguiendo esas reglas no tengo problemas. |
#5
|
||||
|
||||
gracias por el dato avmm2004 pero ahun me sigue tirando error de memoria intentare probarlo en otra pc para descartar.
|
#6
|
||||
|
||||
hola de nuevo realice pruebas en otra pc e incluso desintale el windows xp y coloque windows 2000 y sigue el problema.
Para hacer mas simple cree una dll:
y una aplicacion que suma usando la DLL:
pero al cliquear en el botón realiza la suma pero coloca un cartel de error: Invalid pointer operation Por lo visto hay algo basico que hago mal Espero que alguien me tire un cable por favor |
#7
|
|||
|
|||
El parámetro que devuleve la función debe ser no string sino shortstring y te repito, utiliza Sharemem la primera de todas en tu sentencia uses en la dll y el programa llamador. Los problemas te vienen por el uso de string y no shortsring.
Pd: Si lo que quieres es sumar dos numeros pasele integer y devuelve integer.(en el ejemplo, claro) veras que si no utilzas string desaparece el error. Los strings es mejor usarlos como te digo, a mi me funciona bien. |
#8
|
||||
|
||||
Muchas gracias avmm2004 y disculpa mi ignorancia habia pasado de alto tambien Sharemem
|
#9
|
||||
|
||||
Hola de nuevo he realizado cambio en mi dll y ya no utilizo mas Sharemem porque mi intencion es usarlo en otros entornos (c#) y según lei para ser compatible con cualquier entorno el dato debe ser PChar ya que el string que usa delphi esta compueto por: cantidad de char + array de char y PChar esta compueto por: array de char + chr(0) que indica el final del string Según dice aquí
Muchas gracias a todos!! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
creación de un XML | jmlifi | Providers | 2 | 10-01-2006 16:22:27 |
creacion | armando | OOP | 9 | 28-10-2005 21:29:37 |
Problema Creacion-Cancelacion Registros | Maury Manosalva | OOP | 3 | 21-09-2005 00:18:32 |
Problema con la creación de Indices | apicito | Firebird e Interbase | 3 | 20-05-2005 08:22:04 |
problema con la creacion de informes | Mayorlin | .NET | 2 | 22-07-2004 20:32:24 |
|