delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/09/26/09:15:50

From: Damian Yerrick <Bullcr_pd_yerrick AT hotmail DOT comRemoveBullcr_p>
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: <tc71ts8ihcuan0s7nl6u336q6cm0kpsafr@4ax.com>
References: <8qnriq$2a5$1 AT news DOT germany DOT net> <n8jvsskmu0b5sb4qa1f2uvheu1bcirjqf7 AT 4ax DOT com> <8qp9tc$170$1 AT news DOT germany DOT net>
X-Newsreader: Forte Agent 1.7/32.534
MIME-Version: 1.0
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"
<M DOT Czamai AT peak-system DOT com> wrote:

>
>Damian Yerrick <Bullcr_pd_yerrick AT hotmail DOT comRemoveBullcr_p> schrieb in im
>Newsbeitrag: n8jvsskmu0b5sb4qa1f2uvheu1bcirjqf7 AT 4ax DOT com...
>> On Mon, 25 Sep 2000 17:37:59 +0200, "Martin Czamai"
>> <M DOT Czamai AT peak-system DOT com> 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.

-- 
<O
( \   GNOME vs. KDE: the game!
 X    http://pineight.8m.com/nes.htm

This is McAfee VirusScan. Add these two lines to your signature to
prevent the spread of signature viruses.  http://www.mcafee.com/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019