![]() |
problema con embarcadero y dll
hola,
hace días estoy desarrollando una aplicación que llame a una dll, esta dll obtiene un string, por lo que le paso como parámetro un texbox, luego la dll devuelve un array. todo al parecer funciona no tengo ningún error, ningún warning. pero embarcadero xe3 se cierra automáticamente, no inicia la aplicación, solo empieza a compilar y no lo finaliza. e creado 10 programas grandes en delphi, pero en ninguno e implementado una dll. así que intente, hacer pruebas con los ejemplos que hay aquí, 5 para ser específicos, luego intente con lo que esta en delphibasic y obtengo lo mismo, solo empieza a compilar y después no hace nada. repito que no me da ningún error ni llamada de atención. algún experto en dll, que me pueda dar un pequeñísimo ejemplo de dll, sin que se me cierre el compilador. muchas gracias |
Hola elmago00.
Sin ver tu código es difícil sino imposible poder saber que sucede y por tanto darte un ejemplo específico. Pero te pongo unos enlaces que pueden ayudarte con el manejo de DLL's en Delphi:.
Saludos :) |
elmago00,
Cita:
Revisa este código: El código anterior en Delphi 2010 bajo Windows 7 Professional x32, implementa tres funciones exportadas por un DLL en un programa tipo Desktop bajo Windows. Revisa este código: El código anterior en Delphi 2010 bajo Windows 7 Professional x32, implementa un DLL que exporta tres funciones en la cual cada una devolverá un array en función del string de entrada, en caso de que el string recibido no sea el correcto se devuelve un valor por defecto. Nota: Los códigos anteriores funcionan correctamente en una Máquina Física con Delphi 2010 bajo Windows 7 Professional x32 y en una Máquina Virtual con Delphi XE4 bajo Windows 7 Professional x32, si el evento que describes se repite nuevamente con el ejemplo propuesto, te sugiero revisar la instalación de Delphi XE3 y en caso contrario la aplicación y dll en cuestión.. Espero sea útil :) Nelson. |
elmago00,
Revisa esta información: Cita:
En lo personal independientemente de la versión de Delphi que se utilice siempre es preferible seguir las reglas anteriores por compatibilidad con otros lenguajes en Windows, pero si el DLL y el programa son ambos programados en Delphi 2010 o Delphi XE4 (Solo menciono estas versiones por que son las que he probado en el ejemplo, pero lo más probable es que se cumpla de Delphi 2010 a Delphi XE5), es posible hacer el desarrollo del DLL y su programa asociado como se sugiere en el mensaje anterior en lo relacionado al uso de arreglos y strings como parámetros de un DLL. Para evitar usar como parámetros Arreglos y Strings en Delphi DLLs, estos pueden ser sustituidos por medio de tipos PChar que permitan un medio confiable de intercambio de información entre diferentes lenguajes bajo Windows. Revisa este código: El código anterior en Delphi 7 bajo Windows 7 Professional x32, implementa un DLL que recibe un Pchar de entrada y devuelve un Pchar de salida que contiene varios items de tipo Integer, Double y String delimitados por coma, la idea es simular un arreglo de salida por medio de datos de tipo TStrinList y Pchar. Revisa este código El código anterior en Delphi 7 bajo Windows 7 Professional x32, implementa el DLL (TestDLL2) que simula el arreglo de salida indicado anteriormente. De esta forma se pueden pasar gran cantidad de datos hacia y desde el DLL por medio de datos de tipo TStrinList y Pchar, otra forma es por medio de Estructuras Tipo Record por Referencia, pero solo en los casos que amerite este tipo de datos. Espero sea útil :) Nelson. |
Cita:
Hermano, eres un genio! llegaste justo al problema, y todo salio al 100%, mil gracias a todos por responder. |
La franja horaria es GMT +2. Ahora son las 01:51:36. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi