E2178: VIRDEF-Namenskonflikt bei 'funktion' (C++)
-
Äußerst unwahrscheinlich, dass das ein Problem sein sollte, da das Programm komplett mit dem Patch 1 entwickelt wurde, ohne Patch 2.
Ich probier es trotzdem mal aus.
greetz
para
-
Hast du denn mal einen kompletten Rebuild gemacht, d.h. auch die Precompiled-Header-Dateien gelöscht etc. ?
-
Im Projektordner befinden sich nur die CPP-Dateien und die zugehörigen Header. Hinzu kommen teilweise DFM-Files, für die Windows-Oberfläche (hatte auch mit nem Texteditor Dateien modifiziert und dann gemerkt, dass die DFM-Dateien Probleme machen, wenn man diese Dateien nicht im Builder editiert).
Beim Compilieren steht im Log aber tatsächlich etwas von wegen "vorcompilierte Header geladen".
Haben die eine spezielle Endung beim Builder-4? Könnten die auch in einem anderen Ordner gespeichert sein?
Ansonsten hab ich da nichts finden können.
Im Hauptordner des Projektes befindet sich auch eine DSK-Datei und eine RES-Datei. Ich kenne mich mit den Bedeutungen da nicht so genau aus, aber das eine wird wohl für Ressource stehen o.ä.
Könnten diese Dateien der Problemherd sein? Werde das mal testen.
-
Die Object-Files hab ich natürlich alle gelöscht vorm Compilieren.
-
Soeben ist der Compiler an einer anderen Stelle hängen geblieben (ist er vorher auch schon 1mal, das war aber nach Löschen der obj-Files nicht mehr vorgekommen):
Und zwar gibt er bei dieser Zeile einer der Header-Dateien
bool fillListViewItem(TListItem *ListItem, char aDateMode=0, char aTimeMode=0);
folgende Fehlermeldung aus:
E2293 ) erwartet.
Hier wurde natürlich auch nichts verändert, was mich wieder sehr stutzig werden lässt..
greetz
para
-
Ja, die vorkomp. Dateien sind im BCB-Ordner 'Lib' untergebracht.
Lösch dort mal alle Dateien mit der Endung '.csm' sowie die 'vcl40.#XX'-Dateien (am besten einfach mal den Ordner nach Datum im Explorer sortieren und dann alle besagten Dateien in den Papierkorb schieben).Ich habe zwar hier nur den CBuilder 5 (bei mir heißen die Dateien 'vcl50.#XX')
, aber sollte beim 4er auch nicht anders gewesen sein (außer der Name)...Und dann noch mal dein Projekt neu bauen.
-
Ja, die Dateien hab ich nun alle gefunden und in den Papierkorb verschoben.
Hatte in den Projekteinstellungen auch schon vorcompilierte Header deaktiviert, seitdem macht der Compiler keine dementsprechenden Meldungen mehr.
Auch die VIRDEF-Fehler hab ich seitdem nicht mehr zu Gesicht bekommen, scheint daran gelegen zu haben.
Leider bleibt der
[C++Fehler]ArListItemDeviceState.h(62): E2293 ) erwartet.
Zeile 62:
bool fillListViewItem(TListItem *ListItem, char aDateMode=0, char aTimeMode=0);
Vielen Dank für den guten Support bislang. Hat mir sehr geholfen. Wäre toll, wenn wir das (hoffentlich) letzte Problem auch noch geklärt kriegen.
Inzwischen habe ich
- C++ Builder 4 mit Patch 1 & 2 versehen (inkl. Builder Reinstall)
- vorcompilierte Header deaktiviert / gelöscht
- den Linker iLink32.exe mit dem des Builder 5.5 ersetzt
- den Sourcecode immer noch nicht verändert seit dem letzten erfolgreichen CompilierenPatch 2 sowie Linker tauschen hatten auf das Projekt keine Wirkung.
Das VIRDEF-Problem kam wie es aussieht von den vorcompilierten Headern.- Kann geänderte Hardware/Betriebssystem überhaupt Compiler-Fehler verursachen?
- Können solche Fehler entstehen, wenn ich auf dem alten Rechner SubVersion laufen hatte und dieses nun hier nicht installiert ist?
- Woher kann ein E2293 kommen, wenn nicht aus fehlerhaftem Code? Denn sonst hätte dieser Code ja niemals funktionieren dürfen.Verbessert mich, wenn ich mich irre.
-
Wahrscheinlich kennt er jetzt den Typ 'TListItem' nicht. Durch die vork. Header könnte es vorher funktioniert haben (da die gesamte <VCL.h> dort abgelegt ist).
Also einfach noch ein
#include <comctrls.hpp> // bzw. class TListItem;
vorher einfügen.
Ansonsten einfach mal die Header-Datei posten...
-
Sieht gut aus. Sieht sehr gut aus. ^^
Nach der #include-Zeile hat er mir nun ohne Mucken eine EXE ausgespuckt.
Teste die gleich mal.
Vielen Dank für die Hilfe! Und ein frohes Weihnachtsfest wünsche ich.
-
Danke, wünsche ebenfalls ein Frohes Fest :xmas1:
Vllt. spendiert dir der Weihnachtsmann ja eine neuere Version vom C++ Builder