FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Sustituir acceso DLL por unit en código C
Hola
En mi aplicación Delphi, estoy utilizando la base de datos sqlite v.3, a la que se accede a través de una DLL (sqlite3.dll). Me gustaría acceder a través de su código fuente en C (sqlite3.c). He estado buscando información de como hacerlo pero no consigo tenerlo claro. Agradecería que alguien pudiera ayudarme, en concreto en lo siguiente:
|
#2
|
||||
|
||||
Lo que pides son "palabras mayores", tendrás que investigar el código de ese programa y cuando lo resuelvas, si te parece bien, explicas aquí cómo lo has hecho
|
#3
|
||||
|
||||
No sé si venga mucho al caso, pero recuerdo que algo parecido hace midas. Normalmente tienes que incluir la biblioteca midas.dll pero si incluyes la unidas midaslib en el proyecto entonces no hace falta distribuir la biblioteca.
// Saludos |
#4
|
||||
|
||||
Usar módulos C en Delphi no es difícil, sin embargo lo que tú quieres hacer sí lo es. El problema lo veo aquí:
Cita:
Yo he intentado extender esas clases para diseñar mi propio sistema de base de datos y no lo he conseguido. |
#5
|
||||
|
||||
Pero aún extendiendo la clase TDataSet, ¿cómo le harías?
Otro caso curioso es el de los componentes MyDac de DevArt. El componente TMyConnection tiene una propiedad Options.Direct. Si la pones en false, el ejecutable final requiere que la biblioteca libmysql.dll esté presente. Basta poner la opción en true para que el ejecutable sea independiente. // Saludos |
#6
|
||||
|
||||
Como digo arriba, lo intenté pero no lo conseguí. No encontré información suficiente.
|
#7
|
|||
|
|||
Hola.
Roman, Nuño, ante todo, muchas, muchisimas gracias por vuestra ayuda. Me confirmáis mi sospecha de que lo mas problemático es decirle al componente que trabaje con el código, salvo que en dicho componente ya esté prevista una propiedad para ese fin. De todos modos os rogaría un ejemplo de los dos primeros pasos; insertar y compilar la unidad de código C en el entorno Delphi y un ejemplo genérico de acceso a una función del código C desde un método en Delphi. A ver si con esa información reduzco el problema para dedicarme sólo a revisar los componentes que uso (UniDac que, como MyDac, es de Devart) y revisar sus propiedades para ver si en alguna puedo "convencer" al componente de que se olvide de la DLL. Un saludo y de nuevo gracias. |
#8
|
||||
|
||||
No se si las últimas versioned lo hacen, creo que no, pero las que yo conozco no compilan C. Así que lo tendrás que traducir a delphi.
Nunca entendí porqué a Builder C++ se le otorgó la capacidad de compilar archivos.pas y delphi no compila cpp... Saludos. |
#9
|
||||
|
||||
Cita:
Primero, el código C podría ser algo así: Código:
/* Ejemplo para llamar desde Delphi. */ int calcula_cuadrado (int numero) { return numero * numero; }
Y ahora el uso:
Ten cuidado con los tipos de dato de los parámetros y los valores que devuelve. Por ahí hay tablas que muestran la correspondencia entre los diferentes tipos, pero no te guíes por las apariencias porque a veces el tipo "int" de C no se corresponde con el tipo "INTEGER" de Pascal sino con "SMALLINT" ó con "LONGINT". También ten en cuenta que el mapa de memoria no es idéntico en C y en Delphi, de ahí que se use "CDECL" en el código Pascal. La mayor parte de compiladores de C tienen una directiva que permite hacer lo opuesto (es decir, que la parte escrita en C use un mapa de memoria similar al de Pascal), pero no suele usarse mucho. Y otra cosa: no uses C++, aparte de porque es un lenguaje horrible con todo lo malo de C y poco bueno añadido, porque el mapa de memoria de C++ es tan diferente del de Delphi que es casi imposible compartir datos. Hazlo todo en C. Última edición por Ñuño Martínez fecha: 29-07-2012 a las 02:23:25. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Sustituir Codigo ASCII Fichero texto | lacovera | Varios | 12 | 13-11-2009 14:38:28 |
Acceso a código generado por script | Kafu | HTML, Javascript y otros | 1 | 09-03-2008 04:39:45 |
como crear codigo de acceso | frholguin | Varios | 2 | 24-01-2006 18:59:16 |
Exportar el codigo fuente de una UNIT a HTML | le4br | Varios | 2 | 21-02-2005 04:08:02 |
El CNI tendrá acceso al código fuente de Windows ... | kinobi | Noticias | 6 | 21-01-2004 21:13:35 |
|