#### Archived

This topic is now archived and is closed to further replies.

# why isn't this working?

This topic is 6482 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

I am trying to set my new project like the article by Chris Hargrove that appeared here at gamedev a few months ago. He had all his global variables in one file called globals.h (or something like that), his main windows message loop and such in a file called main.cpp, another header file for a class called creature.h and a file for the class called creature.cpp. In globals.h he included creature.h, the global variables, definitions, etc. In creature.cpp he included globals.h. All the global variables in globals.h had the extern keyword infront of them. He also declared the same variables in main.cpp without the extern keyword in front of them. I am trying to get a similar setup running. My main message loop is called lightworks.cpp, my globals are kept in globals.h (with the extern keyword). My one header file (which is included in globals.h) is called functions.h, and last but not least there is the corresponding file functions.cpp, which includes globals.h. I cant seem to get things to work. Here is the first part of each file: lightworks.cpp: #include "globals.h" LPDIRECT3D8 g_pD3D = NULL; // Used to create the D3DDevice LPDIRECT3DDEVICE8 g_pd3dDevice = NULL; // Our rendering device globals.h: #include #include #include #include "functions.h" //----------------------------------------------------------------------------- // Global variables //----------------------------------------------------------------------------- extern LPDIRECT3D8 g_pD3D = NULL; // Used to create the D3DDevice extern LPDIRECT3DDEVICE8 g_pd3dDevice = NULL; // Our rendering device functions.h: nothing functions.cpp: #include "globals.h" Can anyone figure out what I am doing wrong? I have no clue (since this is only the second time I''ve tried this). "Never pet a burning dog." - Warcraft II

##### Share on other sites
What''s the error you''re getting?

##### Share on other sites
It is telling me that I already declared the two global variables. I am also not sure if I need to include anything in functions.cpp. Any hints on this?

"Never pet a burning dog." - Warcraft II

##### Share on other sites
Aha - this might be it.
At the top of each header file, put this:

then at the bottom:

#endif

This will stop multiple inclusion, and hopefully will fix your problem.

##### Share on other sites
quote:
Original post by Quantum

Aha - this might be it.
At the top of each header file, put this:

then at the bottom:

#endif

This will stop multiple inclusion, and hopefully will fix your problem.

Couldn''t he replace this with
  #pragma once

at the top of each header?

##### Share on other sites
quote:
Original post by NuffSaid

Couldn''t he replace this with

  #pragma once

at the top of each header?

Yeah, but I like the other way better

##### Share on other sites
Thanks guys, I will give that a try as soon as I get home.

##### Share on other sites
Darn it. The #pragma once didn''t work. I was supposed to put in in every header file was I? Am I supposed to include any files in my functions.cpp?

I think I might have to e-mail Ben Dilts about this one again, but I would prefer if I didn''t have to pester him again.

"Never pet a burning dog." - Warcraft II

##### Share on other sites
Ok, try this:

  //lightworks.cpp:#include "globals.h"LPDIRECT3D8 g_pD3D = NULL; // Used to create the D3DDeviceLPDIRECT3DDEVICE8 g_pd3dDevice = NULL; // Our rendering device//functions.cpp:#include "globals.h"//globals.h:#ifndef _GLOBALS_H_#define _GLOBALS_H_//include the headers that got cut off by the board..#include "functions.h"//-----------------------------------------------------------------------------// Global variables//-----------------------------------------------------------------------------extern LPDIRECT3D8 g_pD3D = NULL; // Used to create the D3DDeviceextern LPDIRECT3DDEVICE8 g_pd3dDevice = NULL; // Our rendering device#endif//functions.h:#ifndef _FUNCTIONS_H_#define _FUNCTIONS_H_#endif

##### Share on other sites

I am probably doing something stupid but I don''t know it...

"Never pet a burning dog." - Warcraft II

1. 1
Rutin
29
2. 2
3. 3
4. 4
5. 5

• 13
• 13
• 11
• 10
• 13
• ### Forum Statistics

• Total Topics
632960
• Total Posts
3009481
• ### Who's Online (See full list)

There are no registered users currently online

×