FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problemas con uso de DLLs en Delphi 2009.
Hola a todos.
En algunos proyectos he utilizado dlls de terceros, en efecto tengo varios programas utilizando la libreria de reconocimiento de codigos de barra de Softek, y otros varios. El problema es que al compilar mis proyectos con Delphi 2009 (Con Hotfix2) las aplicaciones simplemente no funciona, especificamente porque las DLLs no funcionan. El problema parece ser que el programa compilado con Dlphi 2009 es incapaz de recibir strings desde las DLLs, funciones que generan strings (en las dlls) generan caracteros orientales o simplemente retornan una cadenaa vacia. Alguien sabe si esto es un caso aislado o un problema conocido de Delphi 2009. En el caso de softek estoy utilizando el mismo archivo de interfaz .pas que ellos suministran. De antemano gracias por cualquier ayuda. EDITADO: Leyendo por ahi me entere de que el manejo de strings ha cambiado algo en Delphi 2009. El tipo PChar ahora es lo mismo que el PWideCHar, por lo que en la mayoria de los casos el problema se soluciona reemplazando todos los PChar por PAnsiChar en la declaracion de las funciones de la dll. Bueno, eso fue lo que hice, ahora la DLL funciona parcialmente, pero por lo visto hay funciones que no se debiesen declarar con PAnsichar, si no que con PWideChar. Mi pregunta concreta es, hay alguna forma de saber el tipo de dato que debo usar????? Solucionado: Ademas de reempalzar, en las declaracion de la dll, todos los PChar por PAnsiChar, eso porque PChar es ahora PWideChar, y la mayoria de las DLLs comerciales trabajan con strings ANSI, al transformar un tipo String (que ya no es solo String si no UnicodeString) a PAnsiChar, primer hay que transformarlo a Ansi, por lo que por ejemplo, si desean tomar el caption de una ventana que es de tipo string, tendrian que hacer la siguiente transformacion. PAnsiChar(AnsiString()); Espero esto pueda ayudar a algun otro colega que este con dolores de cabeza migrando su aplicacion de delphi2007 o menor a Delphi 2009. PD: El IDE de la version 2009 vuela, comparable con el IDE de VisualStudio Última edición por Cheerpipe fecha: 02-03-2009 a las 20:21:22. |
#2
|
||||
|
||||
Muchas gracias por el aporte. Precisamente tenía problemas compilando algunas units antiguas que incluso funcionaban en D2005 y que no sabía por donde pillar los fallos
Un saludo |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Evento Delphi 2009 y C++ Builder 2009 en Guadalajara y Mexico con David | poliburro | Noticias | 14 | 15-09-2008 01:03:58 |
Delphi + Dlls + VisualFox | brandolin | Varios | 2 | 21-01-2006 01:50:40 |
problemas con DLLs | tannyk | Varios | 2 | 04-01-2006 14:14:30 |
Como incluir las DLLS del Delphi en mi proyecto? | bustio | Varios | 2 | 24-09-2005 17:51:09 |
Dlls en Delphi | Khelma | API de Windows | 0 | 08-03-2005 15:52:08 |
|