FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Ejecutable creado en Delphi 6 utiliza librería en Delphi Rio(dll)
Buen Días a los amigos del foro,
Aquí después de unos días acudiendo a su experiencia y me ayuden a resolver un problema. Proceso: Se quiere crear una DLL en Delphi 10 y que esta sea utilizada desde Delphi 6. Nota: Cuando se define y crea ambos proyectos en D10 y usando la unidad “SimpleShareMem” para liberar la librería, no me da ningún problema usando todo como “string”, Si creo el App en D6 y que este utilice la DLL(D10) este genera un error de “Access Violation!!!”. Yo he creado la DLL que devuelva tipo PCHAR por recomendación de unos foros y al ejecutar el App D6 ya no me muestra error, pero tan solo me devuelve un solo carácter de la cadena. Según el ejemplo tan solo devuelve: "P" Me ayudan a detectar el problema en el App D6, La forma de como obtener la cadena completa desde el App D6?. Muchas Gracias. Código de la DLL en D10:
La APP en D6 y utiliza la DLL(Creada D10): (Contiene 2 formas de leer la DLL)
|
#2
|
||||
|
||||
Prueba a usar ansistring en lugar de string.
|
#3
|
||||
|
||||
Hola Casimiro.
Te refieres que haga la prueba usando AnsiString en donde? en la DLL (D10) o el APP (D6)? o en ambos? Gracias por tus respuesta . |
#4
|
||||
|
||||
Es que los Delphi últimos usan unicode, por lo que delphi 6 no pueden usarlo.
Así que si en Delphi Río usas ansistring en lugar de string, lo podrás usar también en delhi 6. Todo lo que sea string, cámbialo a ansistring. Casi seguro que ese es el problema. |
#5
|
||||
|
||||
Casimiro,
Tenias mucha razón, hice el cambio de cambiar todo a AnsiString tanto el APP y la DLL. si bien es cierto ya me devuelve la cadena. pero sale el error "Invalid pointer operation." en el primer caso en el método ADD y en el segundo en el método FreeLibrary. que puede estar faltando? Nota: Cuando hice todo en D10 me salia error al hace click por segunda vez y ahí donde encontré que se debería de usar la unidad: "SimpleShareMem" y ya no me salio error. tendrá que ver algo similar en D6? |
#6
|
||||
|
||||
No se si irán por ahí los tiros, pero también los PChar tienen soporte Unicode en los nuevos RAD Studio. En su lugar tendrías también que probar con PAnsiChar.
Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
colocar una libreria en la ruta del ejecutable | shinopeat87 | OOP | 1 | 08-11-2018 19:32:33 |
Consumir DLL creado con Delphi 2007 causa error al consumirlo con Delphi 5 | rchavezh | Providers | 2 | 27-07-2012 13:53:43 |
Formulario creado desde libreria y traspaso de informacion | mjjj | OOP | 0 | 03-02-2012 21:21:20 |
Cual es el equivalente de un ejecutable de delphi para win32 en delphi PHP | kurono | Varios | 8 | 05-07-2010 05:11:16 |
Consulta Sobre el Lenguaje que utiliza Delphi | Neeruu | Varios | 8 | 14-08-2008 18:35:05 |
|