digitalmars.D - Help with Compiler Error
- Brad Anderson (19/19) May 22 2004 I'm getting an error from the compiler that I don't understand, and woul...
 - Mike Swieton (10/17) May 22 2004 I'm betting that the error is that DefMDIChildProc is not a static metho...
 - Brad Anderson (3/26) May 22 2004 Making DefMDIChildProc() static in os.d didn't seem to help :(
 - Brad Anderson (5/38) May 23 2004 But making the method static AND making the class static did work.
 - Mike Swieton (8/15) May 23 2004 Ok, I'll bite: what does static mean in the context of a class?
 - Brad Anderson (14/35) May 24 2004 It didn't work yesterday when I only made the method static, but things
 
I'm getting an error from the compiler that I don't understand, and would 
appreciate any help.  The error is:
   'this' is required, but OS is not a base class of Decorations
The error is on the return OS.DefMDIChildProc() line.
decorations.d:
----------------------------
public class Decorations : Canvas {
     int callWindowProc (int msg, int wParam, int lParam) {
         return OS.DefMDIChildProc (handle, msg, wParam, lParam);
     }
}
os.d
----------------------------
class OS {
     int DefMDIChildProc (int hWnd, int Msg, int wParam, int lParam) {
         if (IsUnicode) return DefMDIChildProcW (hWnd, Msg, wParam, lParam);
         return DefMDIChildProcA (hWnd, Msg, wParam, lParam);
     }
}
 May 22 2004
On Sun, 23 May 2004 00:30:24 -0500, Brad Anderson wrote:
 I'm getting an error from the compiler that I don't understand, and would 
 appreciate any help.  The error is:
 
    'this' is required, but OS is not a base class of Decorations
 
 The error is on the return OS.DefMDIChildProc() line.
 <SNIP>
I'm betting that the error is that DefMDIChildProc is not a static method, and
you're calling it in a static context. That is a particularly bad error
message, though.
Mike Swieton
__
I believe you should live each day as if it is your last, which is why I don't
have any clean laundry because, come on, who wants to wash clothes on the last
day of their life?
	- Anonymous kid, aged 15 (but may as well be me!)
 May 22 2004
Making DefMDIChildProc() static in os.d didn't seem to help :( BA Mike Swieton wrote:On Sun, 23 May 2004 00:30:24 -0500, Brad Anderson wrote:I'm getting an error from the compiler that I don't understand, and would appreciate any help. The error is: 'this' is required, but OS is not a base class of Decorations The error is on the return OS.DefMDIChildProc() line. <SNIP>I'm betting that the error is that DefMDIChildProc is not a static method, and you're calling it in a static context. That is a particularly bad error message, though. Mike Swieton __ I believe you should live each day as if it is your last, which is why I don't have any clean laundry because, come on, who wants to wash clothes on the last day of their life? - Anonymous kid, aged 15 (but may as well be me!)
 May 22 2004
But making the method static AND making the class static did work. Maybe we can get a better error message from the compiler. Thanks, Mike. BA Brad Anderson wrote:Making DefMDIChildProc() static in os.d didn't seem to help :( BA Mike Swieton wrote:On Sun, 23 May 2004 00:30:24 -0500, Brad Anderson wrote:I'm getting an error from the compiler that I don't understand, and would appreciate any help. The error is: 'this' is required, but OS is not a base class of Decorations The error is on the return OS.DefMDIChildProc() line. <SNIP>I'm betting that the error is that DefMDIChildProc is not a static method, and you're calling it in a static context. That is a particularly bad error message, though. Mike Swieton __ I believe you should live each day as if it is your last, which is why I don't have any clean laundry because, come on, who wants to wash clothes on the last day of their life? - Anonymous kid, aged 15 (but may as well be me!)
 May 23 2004
On Sun, 23 May 2004 23:36:40 -0500, Brad Anderson wrote:But making the method static AND making the class static did work. Maybe we can get a better error message from the compiler. Thanks, Mike. BAOk, I'll bite: what does static mean in the context of a class? Mike Swieton __ If I need a screwdriver and I select a hammer, I probably won't get anywhere and will eventually realize my error. The problem with software is that we are able to turn a hammer into a screwdriver. - Laurent Bossavit
 May 23 2004
It didn't work yesterday when I only made the method static, but things 
began to work as I did this:
public static class OS {
     static int DefMDIChildProc() {
         ...
     }
}
It didn't make much sense to me, but I tried it.  The spec says that 
static is only used on functions and data.  But I couldn't get the code 
to work unless I added it up by class.
Now, of course, after your post questioning this, I took out the static 
before class and it works fine.   So I must have had something else wrong.
BA
Mike Swieton wrote:
 On Sun, 23 May 2004 23:36:40 -0500, Brad Anderson wrote:
 
 
But making the method static AND making the class static did work.
Maybe we can get a better error message from the compiler.
Thanks, Mike.
BA
 
 
 Ok, I'll bite: what does static mean in the context of a class?
 
 Mike Swieton
 __
 If I need a screwdriver and I select a hammer, I probably won't get anywhere
 and will eventually realize my error. The problem with software is that we are
 able to turn a hammer into a screwdriver.
 	- Laurent Bossavit
 
 May 24 2004








 
 
 
 Brad Anderson <brad dsource.dot.org>