Include in einer Unit

Hallo Experten

Ich bin noch Anfaenger und habe deshalb leider nicht so viel Ahnung.
Korrigiert mich ruhig, wenn ich quatsch erzaehle, denn irgendwoher muss ja mein Problem kommen :smile:
Ich habe unter Borland C++ Builder 6.0 folgendes Problem:

In einem Programm (diese Normale Application, die von TForm abgeleitet ist) habe ich eine Unit mit

#include „piezo.h“
eingebunden.

Das funktioniert soweit auch ganz gut.
In dieser piezo.h-Unit (in der nur eine einfache Classe ist) habe ich nun eine Treiber-Unit mit
#include „driver.h“
eingebunden.

Wenn ich das Programm compiliere stolpert er dann aber in der driver.h-Unit schon ueber das erste, was nach den defines steht:

typedef struct _DRIVERINFO
{
ULONG ulDeviceNum;
} DRIVERINFO, FAR * LPDRIVERINFO;

naemlich genau ueber die Zeile
ULONG ulDeviceNum;
mit der Meldung:
Type name expected

Das komische ist nur, dass er nichts sagt, wenn ich diese driver.h-Unit anstelle von in der piezo-Unit in meinem Hauptprogramm include.
Da laeuft das ganze Problemlos !
Nur wuerde ich gerne in meiner Piezo-Unit Befehle verwenden, die in dieser driver.h-Unit definiert werden. So dass ich darauf angewiesen bin die driver-Unit in der piezo-Unit zu includen.

Ich hoffe ich habe mein Problem verstaendlich ausdruecken koennen

Vielen Dank sagt
Martin

Problem geloest, aber warum ?
Hallo

ich habe gerade das Problem selber geloest.
In der piezo.h-Unit habe ich vor dem
#include „driver.h“
noch ein
#include „wtypes.h“
gesetzt.
Damit ist das Problem geloest. Aber warum ?
Es steht doch auch kein
#include „wtypes.h“
in meinem Hauptprogramm, oder doch ?!
Und da konnte ich die Datei ganz einfach includen.

Noch komischer ist, dass ich den
#include „wtypes.h“
Befehl jetzt auch wieder raus nehmen kann. Das Programm laeuft trotzdem noch…
Irgendwie funktioniert der Compiler nicht so ganz recht…

Gruss
Martin

Hallo Martin,

ich habe gerade das Problem selber geloest.
In der piezo.h-Unit habe ich vor dem
#include „driver.h“
noch ein
#include „wtypes.h“
gesetzt.
Damit ist das Problem geloest. Aber warum ?

Vermutlich arbeitest du mit vorkompilierten Headern und der Compiler, eigentlich Make, hat da etwas nicht recht mitbekommen.

Wenn du wiedereinmal solche Probleme hast, hilft es oft zuerst einmal die Option „Alles neu erstellen“ zum Compilieren zu benutzen.

MfG Peter(TOO)