Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   ¿como compilar zlib dll con c++builder XE7? (https://www.clubdelphi.com/foros/showthread.php?t=90721)

JXJ 19-08-2016 19:22:16

¿como compilar zlib dll con c++builder XE7?
 
Hola

Estoy probando

¿como compilar zlib dll con c++builder XE7?

Baje la version 1.2.5
¿alguien sabe como hacerlo?

Gracias

Casimiro Notevi 19-08-2016 19:28:04

¿Compilar una dll? :confused::confused::confused:

JXJ 19-08-2016 22:16:50

Si.

de de zlib, solo logro compilar la version .lib con toda la informacion de tal forma que no se necesita de la zlib1.dll

lo que quiero compilar es la version zlib.dll y que al generar esta dll, se genere el zlib.lib que se usa para los programas
que forzosamente, requieran de la version zlib.dll


parece que ya quedo. en el preprocesador del proyecto en
conditional defines
ZLIB_DLL;_DEBUG


¿alguien que quiera probar este binario de zlib.dll compilado con bcbxe7?

JXJ 22-08-2016 05:25:00

¿como compilar libxml2 con BCBXE7 Win32 shared dll?
 
Hola

Tengo esta duda.

¿como compilar libxml2 con BCBXE7 ?

Estoy compilando
libxml2-2.9.0
en su version shared dll osea que necesite de las dll de iconv.dll y de zlib1.dll


estoy usando c++ Builder XE7

Compile con la linea de comandos en version de 32 bits y usar el bcc32
y si me genera los binarios de ejemplo y dll y lib

Al querer replicar la compilacion desde el IDE
agrege todos los archivos que en el makefile encuentro y 2 archivos me dan error

lineas 39 y 41 archivo schematron.c
#define SCT_OLD_NS BAD_CAST "http://www.ascc.net/xml/schematron"

#define XML_SCHEMATRON_NS BAD_CAST "http://purl.oclc.org/dsdl/schematron"

xlink.c
lineas 42 y 43
#define XLINK_NAMESPACE (BAD_CAST "http://www.w3.org/1999/xlink/namespace/")
#define XHTML_NAMESPACE (BAD_CAST "http://www.w3.org/1999/xhtml/")

El error dice
[bcc32 Error] schematron.c(39): E2040 Declaration terminated incorrectly

si los quito de la compilacion del proyecto en el ide si compila y me genera la dll libxml2.dll
y su archivo de importacion libxml2.lib

¿Alguien sabe del uso de libxml2 y de si esos archivos son necesarios?

Código:

# Libxml object files.
XML_OBJS = $(XML_INTDIR)\buf.obj\
    $(XML_INTDIR)\c14n.obj\
    $(XML_INTDIR)\catalog.obj\
    $(XML_INTDIR)\chvalid.obj\
    $(XML_INTDIR)\debugXML.obj\
    $(XML_INTDIR)\dict.obj\
    $(XML_INTDIR)\DOCBparser.obj\
    $(XML_INTDIR)\encoding.obj\
    $(XML_INTDIR)\entities.obj\
    $(XML_INTDIR)\error.obj\
    $(XML_INTDIR)\globals.obj\
    $(XML_INTDIR)\hash.obj\
    $(XML_INTDIR)\HTMLparser.obj\
    $(XML_INTDIR)\HTMLtree.obj\
    $(XML_INTDIR)\legacy.obj\
    $(XML_INTDIR)\list.obj\
    $(XML_INTDIR)\nanoftp.obj\
    $(XML_INTDIR)\nanohttp.obj\
    $(XML_INTDIR)\parser.obj\
    $(XML_INTDIR)\parserInternals.obj\
    $(XML_INTDIR)\pattern.obj\
    $(XML_INTDIR)\relaxng.obj\
    $(XML_INTDIR)\SAX.obj\
    $(XML_INTDIR)\SAX2.obj\
    $(XML_INTDIR)\schematron.obj\
    $(XML_INTDIR)\threads.obj\
    $(XML_INTDIR)\tree.obj\
    $(XML_INTDIR)\uri.obj\
    $(XML_INTDIR)\valid.obj\
    $(XML_INTDIR)\xinclude.obj\
    $(XML_INTDIR)\xlink.obj\
    $(XML_INTDIR)\xmlIO.obj\
    $(XML_INTDIR)\xmlmemory.obj\
    $(XML_INTDIR)\xmlreader.obj\
    $(XML_INTDIR)\xmlregexp.obj\
    $(XML_INTDIR)\xmlmodule.obj\
    $(XML_INTDIR)\xmlsave.obj\
    $(XML_INTDIR)\xmlschemas.obj\
    $(XML_INTDIR)\xmlschemastypes.obj\
    $(XML_INTDIR)\xmlunicode.obj\
    $(XML_INTDIR)\xmlwriter.obj\
    $(XML_INTDIR)\xpath.obj\
    $(XML_INTDIR)\xpointer.obj\
    $(XML_INTDIR)\xmlstring.obj

Gracias

JXJ 22-08-2016 07:17:39

probe compilar sin esa schematron.c y xlink.c

con la compilacion modo de consola version win32 con bcc32

y parece ser que schematronc.c es parte de un programa de apoyo xmllint.exe y/o de testapi.exe y que usa libxml2.dll


ahora mi duda.¿ por que da error la compilacion de schematron.c y xlink.c usando el ide y desde el makefile.bcb
no me da error. ?
[bcc32 Error] schematron.c(39): E2040 Declaration terminated incorrectly

con al retirar de la compilacion los archivo schematron.c y xlink.c y las aplicaciones
xmllint.exe , testapi.exe

los archivos son diferentes en tamaño son unos bytes mas grandes

Parece que si funcionan bien los archvios compilados dll

Snaked 09-09-2016 14:54:57

mira..... yo programo en C++ Builder 6 Enterprise pero te digo como hago yo cuando necesito usar una dll externa

lo primero es generar el fichero Zlib1.lib para el compilador de borland y esto lo haces desde la linea de comandos donde tengas la DLL con IMPLIB zlib1.lib zlib1.dll (es necesario que en el PATH este la ruta hacia el subdirectorio BIN de C++ builder que es donde busca el Implib.exe)

al convertir la DLL a LIB se generará en la misma carpeta el archivo LIB de borland

Dicho archivo, debes incluirlo en Proyecto que tengas mediante la opcion PROJECT->Add to Project (seleccionas el zlib1.lib que hemos generado) con esto, se unirá al proyecto para que puedas compilar

asi mismo, deberás incluir en el codigo fuente de tu proyecto, en la parte de los includes el include a los ficheros .H de la libreria

finalmente debes colocar el zlib1.dll original en la carpeta donde esté el EXE de tu proyecto para que al ejecutar el programa, pueda llamar a las funciones de esa DLL


Pruebalo así y me cuentas....

ah si....tienes que colocar los include en el codigo mas o menos en esta estructura de ejemplo....despues de la VCL.h

Código:

//---------------------------------------------------------------------------


#include <vcl.h>

#pragma hdrstop
#include "zconf.h"
#include "zlib.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

hecho lo cual al compilar es posible que te de un error de "Ambiguity between Byte and System::Byte" esto lo solucionas reemplazando donde pone Byte en el codigo del archivo zconf.h lo reemplazas Byte por ::Byte

hecho asi a mi me compila perfectamente sin errores ni warning socio

espero haberte ayudado colega

un saludo

Snaked

exmachina 14-09-2016 23:04:01

Cita:

Empezado por JXJ (Mensaje 507920)
Si.

de de zlib, solo logro compilar la version .lib con toda la informacion de tal forma que no se necesita de la zlib1.dll

lo que quiero compilar es la version zlib.dll y que al generar esta dll, se genere el zlib.lib que se usa para los programas
que forzosamente, requieran de la version zlib.dll


parece que ya quedo. en el preprocesador del proyecto en
conditional defines
ZLIB_DLL;_DEBUG


¿alguien que quiera probar este binario de zlib.dll compilado con bcbxe7?

Yo lo estoy intentando con C++ Builder 2010 y de momento no he tenido ningun problema al compilar zlib como biblioteca estatica. Para la dll yo tambien he usado usado ZLIB_DLL, pero aun no he probado el resultado.
Lo que si tengo son las dll compiladas con visual studio que usan codigo ASM y por lo tanto se supone que se ejecutan mas rapidamente. Si le interesa a alguien puedo subir las dll y el codigo (son los proyectos y codigo originales pero con las opcion ASMV)


La franja horaria es GMT +2. Ahora son las 00:06:58.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi