Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   El compilador no reconoce UInt64 (https://www.clubdelphi.com/foros/showthread.php?t=74572)

noob 27-06-2011 12:09:11

El compilador no reconoce UInt64
 
Hola,

Estoy tratando de compilar una librería pero me da un error porque no reconoce UInt64. Esta es la parte de código que da problemas:

Código Delphi [-]
{$IFNDEF GLS_DELPHI_7_DOWN}
  GLuint64 = UInt64;
  TGLuint64 = UInt64;
  PGLuint64 = ^TGLuint64;

  GLuint64EXT = UInt64;
  TGLuint64EXT = UInt64;
  PGLuint64EXT = ^TGLuint64EXT;
{$ELSE}
  // fake UInt64 by using Int64 for Delphi5 + 6
  GLuint64 = Int64;
  TGLuint64 = Int64;
  PGLuint64 = ^TGLuint64;

  GLuint64EXT = Int64;
  TGLuint64EXT = Int64;
  PGLuint64EXT = ^TGLuint64EXT;
{$ENDIF}

lo reemplazo por lo siguiente y no da problemas:

Código Delphi [-]
//{$IFNDEF GLS_DELPHI_7_DOWN}
  {GLuint64 = UInt64;
  TGLuint64 = UInt64;
  PGLuint64 = ^TGLuint64;

  GLuint64EXT = UInt64;
  TGLuint64EXT = UInt64;
  PGLuint64EXT = ^TGLuint64EXT;}
//{$ELSE}
  // fake UInt64 by using Int64 for Delphi5 + 6
  GLuint64 = Int64;
  TGLuint64 = Int64;
  PGLuint64 = ^TGLuint64;

  GLuint64EXT = Int64;
  TGLuint64EXT = Int64;
  PGLuint64EXT = ^TGLuint64EXT;
//{$ENDIF}

Estoy usando Borland C++ Builder 6, ¿no debería meterse por el $ELSE y no por $IFNDEF GLS_DELPHI_7_DOWN? ¿En qué parte se define la directiva del compilador GLS_DELPHI_7_DOWN?

Gracias.

Ñuño Martínez 27-06-2011 13:29:49

Quizá estés olvidando incluir alguna cabecera, porque no me suena a mi que UInt64 sea un tipo de dato de... Espera, si estás usando Builder C++, ¿por qué esto lo escribes en Object Pascal? :confused:

noob 27-06-2011 13:33:18

Estoy usando (o más bien tratando de utilizar) una librería escrita en Object Pascal, GLScene, pero que luego es posible utilizar en Borland C++ Builder 6.

Ñuño Martínez 27-06-2011 13:38:24

Pero si el problema te lo da Delphi, ¿por qué lo pones en el foro de C++? Te lo voy a mover a su sitio.

En cuanto a la pregunta, el comportamiento del compilador es correcto. Si estás usando Delphi6, entonces el nombre GLS_DELPHI_7_DOWN no estaría definido, por lo que el "ifndef" es TRUE. Si el código que citas está dentro de las unidades de GLScene, entonces deberías comentarlo con los desarrolladores de la biblioteca, ya que puede que se trate de un error.

noob 27-06-2011 14:46:06

No lo cambies de foro porque el problema me lo da el IDE Borland C++ Builder 6, Delphi es otro IDE, no estoy usando Delphi lo pongo en el primer mensaje del post: "Estoy usando Borland C++ Builder 6".

Borland C++ Builder 6 es capaz de compilar librerías escritas en Object Pascal así que este es su foro correcto. ¿Lo metes en Gráficos porque la librería a compilar es GLScene? Yo creo que estaba mejor en el de C++ Builder.

El código que cito está dentro de las unidades de GLScene.

Ñuño Martínez 28-06-2011 17:59:25

Cita:

Empezado por noob (Mensaje 404904)
El código que cito está dentro de las unidades de GLScene.

Entonces, como te he dicho, coméntalo con los desarrolladores de GLScene porque es tema suyo. O eso o estás usando una versión del compilador que no es compatible. ¿Cuál es el compilador Delphi? (Builder no puede compilar Pascal porque es un compilador de C y de C++. Otra cosa es que incluya en el IDE un compilador Delphi que es el que se encarga de compilar el código Pascal y Object Pascal)

Ahora miro lo del foro que le corresponde.

escafandra 28-06-2011 19:23:49

En efecto. Builder es capaz de compilar C/C++ y pascal. Pero no es capaz de compilar una aplicación pascal sino unidades sueltas incluidas en un proyecto C/C++.

Builder usa el tipo __int64 en lugar de Int64. También se puede usar DWORDLONG

Saludos.

noob 01-07-2011 17:03:21

Lo he dejado por imposible y me he descargado un paquete con unos fuentes más preparados para BCB6 y ya me compila.

Ñuño Martínez 05-07-2011 12:53:12

Cita:

Empezado por noob (Mensaje 405304)
Lo he dejado por imposible y me he descargado un paquete con unos fuentes más preparados para BCB6 y ya me compila.

Al final era un tema de versiones... :rolleyes:


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

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