This is the mail archive of the
mailing list for the Cygwin project.
Re: w32api header problems
Jean le Roux wrote:
> On Wed, Jan 09, 2002 at 12:40:02PM +0100, Pavel Tsekov wrote:
>>Jean le Roux wrote:
>>>On Wed, Jan 09, 2002 at 01:07:47PM +0300, egor duda wrote:
>>>>Wednesday, 09 January, 2002 Jean le Roux email@example.com wrote:
>>>>JlR> I need to include /usr/include/w32api/winbase.h in order to use the
>>>>JlR> GetVolumeInformation(...) system call under windows.
>>>>JlR> However, as i metioned in an earlier mail, DWORD seems to not be
>>>>JlR> defined. I tracked DWORD's definition down to windef.h.. but it seems
>>>>JlR> the whole include chain is a bit funny.. there are lots of
>>>>JlR> inter-dependencies which are not satisfied.
>>>>JlR> Does anyone have any words of wisdom to make life a little easier, or
>>>>JlR> do I simply have to test for, and include, all the headers in w32api ?
>>>>you ought to
>>>I've done this but <windows.h> seems to leave my code in a tangle :)
>>>I suddenly have parse errors in my own header files, on normal
>>>function declerations. I can only deduce that windows.h is leaving an
>>>open ifdef or has unterminated strings or something silly.
>>>Anybody encounter this before? Any suggestions ?
>>>I can put the compiler output online if someone wants to take a look,
>>>and ofcourse some code snippets.
>>It would be helpful :)
> Here it is: first the relevant snip from my header file (common.h), and then the
> compilers pain.
> //this is where i include the header that make life hard :)
> #ifdef HAVE_WINDOWS_H
> #include <windows.h>
> //this is where the errors occur.
> int max(const int value_a, const int value_b); //line 283
> int min(const int value_a, const int value_b); //line 284
To fix the min and max, define the following before including windows.h:
> string itoa(const int value, const short fix=0); //line 285
Have you included <string> ?
> [compiler output]
> cd . \
> && CONFIG_FILES= CONFIG_HEADERS=config.h \
> /bin/sh ./config.status
> creating config.h
> config.h is unchanged
> make all-recursive
> make: Entering directory `/cygdrive/e/projects/multicast/pmfp'
> Making all in libsrc
> make: Entering directory `/cygdrive/e/projects/multicast/pmfp/libsrc'
> /bin/sh ../libtool --mode=compile c++ -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -c common.cc
> rm -f .libs/common.lo
> c++ -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wp,-MD,.deps/common.pp -c common.cc -DPIC -o .libs/common.lo
> In file included from common.cc:5:
> common.h:284: parse error before `const'
> common.h:285: parse error before `const'
> common.cc:524: parse error before `const'
> common.cc:529: parse error before `const'
> make: *** [common.lo] Error 1
> make: Leaving directory `/cygdrive/e/projects/multicast/pmfp/libsrc'
> make: *** [all-recursive] Error 1
> make: Leaving directory `/cygdrive/e/projects/multicast/pmfp'
> make: *** [all-recursive-am] Error 2
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html