Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Errores en ejecución al reinstalar Windows (https://www.clubdelphi.com/foros/showthread.php?t=89105)

Sapiem 27-09-2015 15:35:14

Errores en ejecución al reinstalar Windows
 
Hola

Tengo un serio problema que no le he encontrado solución después de 1 semana de búsqueda.

Resulta que tengo una aplicación de hace más de 5 años de creada con Delphi 2006 sobre Windows 7. Esta aplicación la estoy en constante desarrollo y siempre ha funcionado ok.

Luego instalé Windows 8.1 y seguí su desarrollo con Delphi 2006 sin problemas. Luego migré a Windows 10 y, con algunos problemas de instalación, seguí con Delphi 2006 sin problemas.

Ahora decidí crear 2 particiones en mi PC, una con Windows 7 con Delphi 2006 para dedicarla solo a la programación, junto a Android Studio, y otra con Windows 10 para trabajo normal.

Para mi sorpresa todo es una locura en el código ya existtente. Por ejemplo :

La función FileExits devuelve true cuando un archivo no existe. Sin embargo ese mismo bloque de código lo pego un una aplicación nueva y funciona correctamente.

Los Streams me dan errores, códigos que funcionan sin problemas desde hace años.

Es como si lo que está escrito en el programa original está mal y cuando se pasa a una aplicación nueva, funciona ok.

Es una locura y no he podido hacer más nada en el código.

Agradecería mucho una ayuda

Un abrazo

escafandra 27-09-2015 17:47:32

Probáblemente tu proyecto original esté importando mal la API de Windows. Es extraño, yo trabajo con Win10 y los proyectos funcionan bien si los continúo en en otros PCs con WinXP o Win7.

Prueba a crear un proyecto nuevo y sobre él cambias el formulario principal por el de tu vieja App y luego añades todas las Units que tenga.


Saludos.

Sapiem 27-09-2015 19:23:42

Cita:

Empezado por escafandra (Mensaje 497226)
Probáblemente tu proyecto original esté importando mal la API de Windows. Es extraño, yo trabajo con Win10 y los proyectos funcionan bien si los continúo en en otros PCs con WinXP o Win7.

Prueba a crear un proyecto nuevo y sobre él cambias el formulario principal por el de tu vieja App y luego añades todas las Units que tenga.


Saludos.

Ok, son muchas las units, pero intentaré hacerlo, no queda otra. Realmente no se qué pueda estar pasando.

Gracias

Neftali [Germán.Estévez] 28-09-2015 10:42:35

Cita:

Empezado por Sapiem (Mensaje 497225)
La función FileExits devuelve true cuando un archivo no existe. Sin embargo ese mismo bloque de código lo pego un una aplicación nueva y funciona correctamente.

Realmente esto es bastante extraño... :confused::confused:

Casimiro Notevi 28-09-2015 11:03:14

A ver el código...

Sapiem 29-09-2015 02:20:15

Cita:

Empezado por Casimiro Notevi (Mensaje 497249)
A ver el código...

Esta es la parte del FileExists:

Código Delphi [-]
  if not FileExists('sqlite3.dll') then
    if not CrearDLL('xSQLite3') then
      begin
        ShowMessage('Imposible crear archivos necesarios para el correcto funcionamiento del sistema');
        Halt;
      end;

Esta es otra parte de Streams:

Código Delphi [-]

function CrearDLL(const aResourceName: String): boolean;
   var
      ms: TMemoryStream;
      rs: TResourceStream;
   begin
      ms := TMemoryStream.Create;
      try
         rs := TResourceStream.Create(HInstance, aResourceName, RT_RCDATA);
         try
           ms.CopyFrom(rs, 0);
           ms.Position := 0;
           ms.SaveToFile('sqlite3.dll');
           Result := True;
         finally
           rs.Free;
         end;
      finally
        ms.Free;
      end;
   end;

Como verán, trato de verificar que sqlite3.dll existe en la carpeta de la app, de lo contrario, la creo a partir de un resource. Todo esto funciona perfecto desde hace años, excepto después de la reinstalación del Windows y por supuesto del Delphi 2006. Aunque le ponga la dirección completa a la verificación del sqlite3.dll, sigue dando que existe y realmente no existe pues yo la elimino manualmente.

Gracias por toda ayuda....

ecfisa 29-09-2015 03:18:03

Hola Sapien.

Por favor, cuando incluyas código, usa las etiquetas de este modo para darle mas legibilidad :




Saludos :)

Sapiem 07-10-2015 19:08:47

Desinstalé el Zeoslib 7.1.4 y puse la anterior 7.0.0 y al menos funciona ok, pero pasa a paso en debug no funciona el FileExists y sin embargo si funciona ejecutandose completo. Es algún problema del IDE.

Sigo sin entender..

escafandra 07-10-2015 22:44:25

Comprueba la ruta donde guardas y donde debería estar sqlite3.dll. Puede no coincidir el path en ejecución con el path desde el debugger.

Saludos.


La franja horaria es GMT +2. Ahora son las 03:48:48.

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