Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-11-2015
iMia iMia is offline
Miembro
 
Registrado: jul 2010
Posts: 141
Poder: 14
iMia Va por buen camino
Talking XE7 crash address con TClientDataset arreglado!

Buenas...
Quería comentaros un error que me ha llevado unos días de cabeza, pero que finalmente he resuelto...

Tengo un aplicacion de escritorio de 32 bits en XE... funciona perfectamente, 3000 instalaciones y sin fallos, en XP, en W7, en W8, en W8.1 y W10 (hasta en ubtuntu con el wine !!)

Hago la migración a XE7, sin ningún problema...(sólo utilizo un componente no propio de delphi, pero como tengo el fuente, lo recompilo con el XE7) y todo funciona perfectamente...
Bueno, todo hasta que lo pruebo en un Windows 8... que me sale un "crash address"...
Busco la línea, y es al crear el datamodule, que he puesto unos TClientDataset para guardar datos en tiempo de ejecución, y al hacer el CretateDataset explota...
Cosa que la misma app compilada con XE7 en Windows 7 y XP funciona perfectamente...

Rebuscando he encontrado que hay el problema está en la librería Midas.dll. Resulta que es una version antigua, pero que delphi incorpora esas funciones en una librería propia...
simplemente hay que añadir MidasLib a la cláusula uses

Código Delphi [-]
...
implementation

uses
  windows, Inifiles, Dialogs, midaslib,
   ...

Ale, compartido queda...
Responder Con Cita
  #2  
Antiguo 12-11-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
OK.

Gracias por la información.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 12-11-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Que yo sepa, "de toda la vida", hay que añadir midaslib al uses.
Responder Con Cita
  #4  
Antiguo 12-11-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Por lo que yo tengo entendido no es obligatorio, es más, puedes compilar un proyecto que use TClientDatset sin necesidad de añadirla.
La diferencia entre ambos casos, es que deba estar registrado como servidor COM (con regsevr32) o no en el sistema.

Creo que aquí está explicado un poco mejor.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 12-11-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Neftali Ver Mensaje
Por lo que yo tengo entendido no es obligatorio, es más, puedes compilar un proyecto que use TClientDatset sin necesidad de añadirla.
La diferencia entre ambos casos, es que deba estar registrado como servidor COM (con regsevr32) o no en el sistema.
Creo que aquí está explicado un poco mejor.
Sí, es así. pero al comentar que funciona en muchas versiones distintas e incluso ejecutado con wine desde ubuntu, deduje que debería estar usando midaslib, salvo que incluyera unas instrucciones para todo el mundo para ejecutar regsevr32, incluso en linux.
Responder Con Cita
  #6  
Antiguo 12-11-2015
iMia iMia is offline
Miembro
 
Registrado: jul 2010
Posts: 141
Poder: 14
iMia Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Por lo que yo tengo entendido no es obligatorio, es más, puedes compilar un proyecto que use TClientDatset sin necesidad de añadirla.
La diferencia entre ambos casos, es que deba estar registrado como servidor COM (con regsevr32) o no en el sistema.

Creo que aquí está explicado un poco mejor.
Exactamente, así lo he hecho yo siempre, en el Instalshield agregaba las unidades necesarias y se registraban, entre ellas Midas.dll...

Pero ahora al detectar el error, lo he mirado y he visto que se puede hacer así...
Responder Con Cita
  #7  
Antiguo 12-11-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Coincido con Casimiro, yo siempre meti la MidasLib en los proyectos. Tarde o temprano te evitas dolores de cabeza, tu aplicacion siempre va a funcionar bien si tiene la Midas que necesita
Responder Con Cita
  #8  
Antiguo 12-11-2015
iMia iMia is offline
Miembro
 
Registrado: jul 2010
Posts: 141
Poder: 14
iMia Va por buen camino
Ya, eso ahora ya lo sé...
Y eso que estoy desde Borland Delphi for Windows....
Responder Con Cita
  #9  
Antiguo 12-11-2015
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Yo prefiero usar la biblioteca de enlace dinámico MIDAS.DLL, dado que ocasionalmente hay que regresar a una versión anterior debido a algún defecto del MIDASLib de tiempo de compilación. En otras palabras, tengo más control sobre qué MIDAS usar cuando opto por la DLL.

Desaconsejo agregar a la cláusula Uses la biblioteca MIDASLib, porque el ejecutable queda limitado a una única versión de la API sobre la cual trabaja el estupendo componente TClientDataSet.

Saludos.

Al González.
Responder Con Cita
  #10  
Antiguo 12-11-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Todos los días se aprende algo
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ventana de error: Access violation at address 00CA1C10. Read of address 00CA1C10 HERYCK Varios 3 06-10-2012 07:35:57
Crash en programa, o Bucle Infinito? martini002 Varios 11 08-06-2012 19:31:50
Server Crash en Nevrona mlara Noticias 5 21-02-2012 13:51:24
Access violation at address 7C92B1FA in module 'ntdll.dll'. Write of address 00000010 genyus00 Varios 1 12-02-2011 09:41:20
Interbase server crash! fredycc Firebird e Interbase 4 08-01-2009 15:22:31


La franja horaria es GMT +2. Ahora son las 21:02:54.


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
Copyright 1996-2007 Club Delphi