Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Error de compilación ¿por qué? (https://www.clubdelphi.com/foros/showthread.php?t=95909)

Angel.Matilla 17-10-2022 10:03:49

Error de compilación ¿por qué?
 
Buenos días. Tengo una aplicación hecha en BCB 6, la misma que tantas veces he preguntado. Estoy tratando de definir un nuevo formulario que lleva incorporado un TVirtualStringTree y de momento sólo tiene ese elemento en el formulario. Me está ocurriendo que al compilar el proyecto me da un error en uno de los ficheros de cabecera del TVST, en VirtualTrees.hpp; el error es este:
Cita:

[C++ Error] VirtualTrees.hpp(1888) E2321 Declaration does not specify a tag or an identifier
y el conjunto de líneas al que apunta es este:
Código:

struct TSHDragImage
{
        tagSIZE sizeDragImage;
        Types::TPoint ptOffset;
        HBITMAP hbmpDragImage;
        unsigned ColorRef;
};
#pragma pack(pop)

Es evidente que no he modificado dicho fichero y que el error únicamente aparece si añado este formulario, si bien son muchos los formularios que tiene ese mismo elemento y si quita este último TVST entonces compila sin error. ¿Podéis darme una pista sobre donde puede estar el error?

juanelo 17-10-2022 22:51:40

El problema es que no indicas cual es la linea del error.

Angel.Matilla 18-10-2022 10:28:09

Tienes razón. En teoría el error lo da en la llave de cierre, pero que si no he tocado ese fichero y si quitando el TVST de ese formulario compila bien y dicho formulario sólo tiene ese elemento no entiendo lo que pasa.

juanelo 18-10-2022 19:48:26

Que tipo de alineacion manejas en tus opciones de compilacion: byte,word,double word,4word ... etc ?

Angel.Matilla 19-10-2022 11:29:49

Es algo que no he tocado nunca y está como viniera definido en la instalación. No sé si te refieres a esto.

o a esto.

juanelo 19-10-2022 19:37:05

struct TSHDragImage { tagSIZE sizeDragImage; Types::TPoint ptOffset; HBITMAP hbmpDragImage; unsigned ColorRef; };
Elimina el ultimo punto y coma:

struct TSHDragImage { tagSIZE sizeDragImage; Types::TPoint ptOffset; HBITMAP hbmpDragImage; unsigned ColorRef; }

Angel.Matilla 20-10-2022 10:59:53

Cita:

Empezado por juanelo (Mensaje 548761)
Elimina el ultimo punto y coma:

struct TSHDragImage { tagSIZE sizeDragImage; Types::TPoint ptOffset; HBITMAP hbmpDragImage; unsigned ColorRef; }

Lógicamente da error de compilación:
Cita:

[C++ Error] VirtualTrees.hpp(1892) E2176 Too many types in declaration
en la siguiente declaración.
Código:

#pragma pack(push, 1)
struct TSHDragImage
{
        tagSIZE sizeDragImage;
        Types::TPoint ptOffset;
        HBITMAP hbmpDragImage;
        unsigned ColorRef;
}
#pragma pack(pop)

__interface IDragSourceHelper;
typedef System::DelphiInterface<IDragSourceHelper> _di_IDragSourceHelper; // Da error aquí

Además lo que no entiendo es porque si para los demás TVST que hay definidos, 22 en total, no se produce ese error por qué sí ocurre cuando se añade un nuevo formulario.


La franja horaria es GMT +2. Ahora son las 00:59:15.

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