Jump to content
  • Advertisement
Sign in to follow this  
wasssup1990

OpenGL Compiler errors

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

If you intended to correct an error in the post then please contact us.

Recommended Posts

Ok I am making a Physics simulator for fun. I started with Direct3D9 and then I moved to OpenGL. Now I'm back using Direct3D9 but this time I am constantly getting the same errors over and over again in VC++ 2008. Looking forward to your help. THE WINMAIN HEADER FILE
#ifndef WINMAIN_HPP
#define WINMAIN_HPP

//System includes
#include <windows.h>
#include <windowsx.h>
#include <math.h>

// DirectX Header Files
#include <d3d9.h>
#include <d3dx9.h>

// Useful macros
#define ERROR_MSG(msg){MessageBox(NULL,msg,L"Error",MB_OK|MB_ICONEXCLAMATION);}	//error macro debugging

//My includes
#include "Direct3D.hpp"
#include "Performance.hpp"      //Not reliant on local headers
#include "Physics.hpp"
#include "Camera.hpp"		//Not reliant on local headers
#include "Clock.hpp"		//Not reliant on local headers



extern cPhysics *myPhysics;
extern cClock *myPerformanceClock;
extern cClock *myClock;
extern cPerformance *myPerformance;
extern cD3D *myD3D;

////////////////////////////////////////////////////////////////////
#define WINDOW_WIDTH  800
#define WINDOW_HEIGHT 600

////////////////////////////////////////////////////////////////////
//GLOBAL FUNCTIONS

//handle any messages from windows
LRESULT CALLBACK wndProc(HWND hWnd,		
						 UINT uMsg, 
						 WPARAM wParam, 
						 LPARAM lParam);

//main entry point
int WINAPI WinMain(HINSTANCE hInstance, 
				   HINSTANCE hPrevInstance, 
				   LPSTR lpCmdLine, 
				   int nShowCmd);

void cleanUp();		//any cleanup code such as IDirect3D9::Release() goes here



////////////////////////////////////////////////////////////////////
#endif //WINMAIN_HPP
THE DARN ERRORS
1>------ Build started: Project: RealitySim, Configuration: Debug Win32 ------
1>Compiling...
1>Direct3D.cpp
1>f:\projects\realitysim\solution\winmain.hpp(29) : error C2143: syntax error : missing ';' before '*'
1>f:\projects\realitysim\solution\winmain.hpp(29) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>f:\projects\realitysim\solution\winmain.hpp(29) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>f:\projects\realitysim\solution\direct3d.cpp(23) : warning C4244: 'argument' : conversion from '__int64' to 'UINT', possible loss of data
1>f:\projects\realitysim\solution\direct3d.cpp(38) : warning C4244: 'initializing' : conversion from '__int64' to 'unsigned int', possible loss of data
1>f:\projects\realitysim\solution\direct3d.cpp(60) : warning C4244: 'argument' : conversion from '__int64' to 'UINT', possible loss of data
1>f:\projects\realitysim\solution\direct3d.cpp(69) : warning C4244: 'argument' : conversion from '__int64' to 'size_t', possible loss of data
1>f:\projects\realitysim\solution\direct3d.cpp(125) : warning C4244: 'argument' : conversion from '__int64' to 'UINT', possible loss of data
1>Physics.cpp
1>f:\projects\realitysim\solution\winmain.hpp(25) : error C2143: syntax error : missing ';' before '*'
1>f:\projects\realitysim\solution\winmain.hpp(25) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>f:\projects\realitysim\solution\winmain.hpp(25) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>WinMain.cpp
1>f:\projects\realitysim\solution\winmain.cpp(184) : warning C4244: 'argument' : conversion from 'float' to 'DWORD', possible loss of data
1>Generating Code...
1>Build log was saved at "file://f:\Projects\RealitySim\Solution\Debug\BuildLog.htm"
1>RealitySim - 6 error(s), 6 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Share this post


Link to post
Share on other sites
Advertisement
Hi,

Quote:
error C2143: syntax error : missing ';' before '*'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int


I think you must look at your class definitions. You know, in a class definition, you must end it with a ; symbol:

class CMyClass
{
//...some members
}


This definition is wrong, because I "forgot" a ; symbol after }. The true definiton:

class CMyClass
{
//...some members
};


I think you must check something like this.

Regards.

Share this post


Link to post
Share on other sites
Maybe I should state what exactly I am trying to achieve.

All I want to do is make a few "new" instances global. The instances are created in WinMain();

Share this post


Link to post
Share on other sites
Hi,

The error log says that something wrong in line 25 and line 29.

Line 25:
extern cPhysics *myPhysics;


Line 29:
extern cD3D *myD3D;


You should check cD3D and cPhysics definitions. Because error log also says: "missing type specifier - int assumed. Note: C++ does not support default-int". This means, something wrong with your type/class/struct/enum definiton(s) and compiler couldn't find a data-type like it. It may be caused by a forgotten semi-colon.

If still not, maybe you can post your project files here ;)

Hope this helps.

Regards.

Share this post


Link to post
Share on other sites
Hi again,

No the classes are fine. They work in the OpenGL version.

Ok so lets put those errors aside for now. It's probably some silly Visual studio problem.

Let's focus on what I am trying to do. I need to make the following "new" instances Global to all other source files.

////////////////////////////////////////////////////////////////////
//MAIN
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd)
{
///////////////////////////////////////////////////////////////////
//create new class instances on heap RUN-ONCE!
cClock *myClock = new cClock();
cD3D *myD3D = new cD3D();
cPhysics *myPhysics = new cPhysics();
cPerformance *myPerformance = new cPerformance();
cClock *myPerformanceClock = new cClock();
.
.
.
.



How can it be done?

Share this post


Link to post
Share on other sites
Ok, I can see the problem now :)

I see you included some custom .hpp files: Direct3D.hpp, Clock.hpp etc. Look at your custom .hpp files. At least 2 of these are including each other.

Like this:
In my CKamera.h file,
#include "CModel.h"


and also in my CModel.h file,
#include "CKamera.h"


You can see that CKamera and CModel are including each other. Look at your project files something like this.

And what about the solution of that "silly" problem? I'll try to explain over the example above.

Instead of these #include lines in your .hpp files, you must put pre-definitons. And remove these #include lines to .cpp files. Like this:

//in my CKamera.h
class CModel;

class CKamera
{
//... members
};


//in my CKamera.cpp

#include "CModel.h"
#include "CKamera.h"

CKamera::CKamera()
{
//...
}
//...


//in my CModel.h
class CKamera;

class CModel
{
//... members
};


//in my CModel.cpp
#include CModel.h
#include CKamera.h

CModel::CModel()
{
//...
}
//...


Hope this helps.

Regards.
Rohat.

Share this post


Link to post
Share on other sites
Sorry, I forgot to say an important thing:

If at least 2 of your .hpp files are including each other and also if you're using one of 'em in the other class, these errors will occur. Like this:

in CModel.h

#include CKamera.h

class CModel
{
//...
CKamera* kamera;
//...
};


Regards.

Share this post


Link to post
Share on other sites
Hey! I just looked at your profile and I see you are an electronics engineer. I am a second year student in electronics engineering. I'm interested. If you want, can you tell me what career pathways were opened to you when you became an electronics engineer. I'm mainly interested in the computer/digital part of electronics engineering. The reason why I am asking is because I think it is relevant for me to know these things for my future career.

Thanks again!

BTW I gave you a full marks on your user rating.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!