From: Damian Yerrick Newsgroups: comp.os.msdos.djgpp Subject: Re: Cannot use of LOCK_FUNCTION, END_OF_FUNCTION,... in classes? Organization: Pin Eight Software http://pineight.8m.com/ Message-ID: References: <8qnriq$2a5$1 AT news DOT germany DOT net> <8qp9tc$170$1 AT news DOT germany DOT net> X-Newsreader: Forte Agent 1.7/32.534 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 59 X-Trace: +4vTA1QCrbWPeRsqOZHP8sap/lakFIrh3j9DNnjpbsl20f+2EY0pg4u2boUByubLe+KxxGPxA/Dd!c13LtqYanAm23nTH3gOFkx+o3H/L7Vhjs8hK/Uo19TvMxkunepk8L+Ly5Wqb6FkqU8A0sB1AUFtM!gXsa4A== X-Complaints-To: abuse AT gte DOT net X-Abuse-Info: Please be sure to forward a copy of ALL headers X-Abuse-Info: Otherwise we will be unable to process your complaint properly NNTP-Posting-Date: Tue, 26 Sep 2000 13:03:08 GMT Distribution: world Date: Tue, 26 Sep 2000 13:03:08 GMT To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com On Tue, 26 Sep 2000 06:48:44 +0200, "Martin Czamai" wrote: > >Damian Yerrick schrieb in im >Newsbeitrag: n8jvsskmu0b5sb4qa1f2uvheu1bcirjqf7 AT 4ax DOT com... >> On Mon, 25 Sep 2000 17:37:59 +0200, "Martin Czamai" >> wrote: >> >> >Hello, >> > >> >my problem is that I want to lock functions (like interrupt service >> >routines) using the END_OF_FUNCTION and LOCK_FUNCTION macros from allegro >in >> >classes. This doesn't work because MYFUNCNAME_end is not a member of >> >MYCLASS. Any idea how to fix this problem? >> >Thanks in advance for your help >> >> If you're using a class method as an Allegro timer handler, make sure >> both the method and the END_OF_FUNCTION are static. >> >> static void Class::my_timer(void) >> { >> >> } >> static END_OF_FUNCTION(Class::my_timer); > >This doesn't work - the compiler returns the error message "cannot declare >member function Class::mytimer() to have static linkage" :-(( Been a while since I wrote C++. Normally I stick to C or go all the way and use Java (veering offtopic...). >The intened purpose of the function i want to lock is the interrupt service >routine of some piece of hardware. >Any idea again? I wouldn't use methods as timer handlers. This isn't Java. Now I remember. The 'static' keywords go in your class declaration: class Class { ... static void my_timer(); static END_OF_FUNCTION(my_timer); ... } and leave static off the implementations. This might have _bad_ effects; I can't guarantee the performance of a method used as a timer handler. --