Thanks Sven and Michael, I will do as you proposed and simply use a pointer for now. Later once the code has been ported I will have a look to refactor the code.
Regards, Darius > On 22.02.2013 09:57, dhkblas...@zeelandnet.nl wrote: >> Hi, >> >> I'm porting a piece of software to FPC but I got stuck at a forward >> struct >> declaration. The situation is as folows. >> >> Header 1 declares: >> struct TaskHandle__; >> typedef void (*CallBackProcPtr)(struct TaskHandle__ *task); >> >> And Header2 provdes: >> typedef struct TaskHandle__ { int unused; } *TaskHandle >> >> However header 2 already references header 1 because it already contains >> some other type definitions, so I cannot reference header 2 in header 1 >> because of a circular dependency. Can FPC do something similar to C and >> define a forward record? > > A: You could move the declaration of TaskHandle__ to a common unit which > is used by the other two units. > > B: As the TaskHandle__ type seems rather simple move it to the Header 1 > unit with a comment "was originally declared in Header 1" (because > Header 2 already uses Header 1) > > C: You could treat the "task" parmeter for the callback simply as a > pointer... (of course you reduce static typing with this) > > Regards, > Sven > _______________________________________________ > fpc-pascal maillist - fpc-pascal@lists.freepascal.org > http://lists.freepascal.org/mailman/listinfo/fpc-pascal > _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal