From: colin AT bird DOT fu DOT is DOT saga-u DOT ac DOT jp (Colin Peters) Subject: Re: g++, opengl, and STDCALL, * __attribute__ ((stdcall)) problem. 1 Dec 1997 01:03:51 -0800 Message-ID: <01bcfe01$09ed4ba0$fa173185.cygnus.gnu-win32@gbird0.fu.is.saga-u.ac.jp> Reply-To: "Colin Peters" Mime-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit To: "ulisses mello" Cc: "GNU-Win32" From: ulisses mello Date: Saturday, November 29, 1997 10:55 PM >I am trying to compile a simple program (cube.c) with g++. I have no >problem to compile it using gcc. However, GL/gl.h does not compile in >g++. For example, I get the error: > >sintax error before '__attribute__' on the function > >WINGDIAP const GLubyte * APIENTRY glGetString( GLenum name); > >making the substitutions from windows.h it becomes: > >const GLubyte * __attribute ((stdcall)) glGetString( GLenum name); > >I am aware the g++ flags an error for things like: > >int * __stdcall foo(); // but has no problems with >int __stdcall * foo(); > >But changing the order of * in gl.h has not solved the problem. I think if you move APIENTRY to the *end* of the function prototype then it will work with g++ (and gcc), but, of course, it will stop working with other compilers I suspect. If you are just using gcc and g++ then no problem, otherwise make separate copies of those headers for gcc/g++. WINGDIAP const GLubyte * glGetString( GLenum name) APIENTRY; Looks strange, but I think it will work. This is, I think, a bug in the C++ parser, and I have no idea if/when it will be fixed. Good luck, Colin. -- Colin Peters -- colin at fu.is.saga-u.ac.jp -- Saga University Dept. of Information Science -- http://www.fu.is.saga-u.ac.jp/~colin -- http://www.geocities.com/Tokyo/Towers/6162 - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".