Irr 1.10 - createDeviceEx

If you are a new Irrlicht Engine user, and have a newbie-question, this is the forum for you. You may also post general programming questions here.
Post Reply
Mikenoworth
Posts: 78
Joined: Sat May 27, 2006 9:24 pm
Location: Logan, UT

Irr 1.10 - createDeviceEx

Post by Mikenoworth »

I'm having issues with createDeviceEx now.

It seems, from the stack, six steps into createDeviceEx I get an Access violation reading location 0xcccccc01.

Code:
Irrlicht.dll!10088cbf()
[Frames below may be incorrect and/or missing, no symbols loaded for Irrlicht.dll]
Irrlicht.dll!100a4c23()
Irrlicht.dll!10005417()
Irrlicht.dll!10088dfa()
Irrlicht.dll!10086d75()
Irrlicht.dll!10087a09()
Game.exe!_free_dbg(void * pUserData=0x00000004, int nBlockUse=1024) Line 1199 + 0x7 bytes C++
ntdll.dll!7c9106eb()
> Game.exe!IrrlichtSetupAndInit() Line 248 + 0xc bytes C++


I'm using Windows Xp sp2, with Visual C++ 2005 Express.

I think this is a 2005 express issue. I upgraded to irr 1.10 with vc7.1 and had no problems whatsoever, but with the same source and 2005 ex, this problem always occurs.

Anybody else run into this problem?
Stout Beer
magisterrivus
Posts: 33
Joined: Sat Aug 05, 2006 9:46 pm

Post by magisterrivus »

Hi Mikenoworth,

what issues do you exactly have? Show your code.

8)
under construction
Mikenoworth
Posts: 78
Joined: Sat May 27, 2006 9:24 pm
Location: Logan, UT

Post by Mikenoworth »

:lol: It's createDeviceEx, what more is there to it?

Okay, just to play along:

Code: Select all

  	SIrrlichtCreationParameters params = SIrrlichtCreationParameters();
                // I used: SIrrlichtCreationParameters params;
                // for irr 1.0, but now alot of classes that didn't have 
                // constructors now have constructors in 1.10.

	params.HighPrecisionFPU = true;
	params.EventReceiver = 0;
	params.WindowId = 0;

	IDevice	= 0;

                // Things like resolution, bpp, are set here from a script
                // file, debugging has shown everything is being set properly.
                // So we skip ahead to createDeviceEx.
                // Just for the doubtful, even with the code commented that
                // sets resolution, bpp, etc., I still receice the same problem.

	IDevice = createDeviceEx( params );
It's really that simple. Irrlicht is accessing something that is invalid. I've looked over Irrlichts source and see nothing obvious. So if anybody who _compiles_ Irrlicht regularly, has the same setup (again, winxp, vc++ 2005 express) can reply, help would be appreciated.

Note: In visual studio 7.1 it worked fine. I think it has something to do with Irrlicht being incompatible with 2005's fascist function deprecations/null pointer handling because of it's attempt to tighten buffer overrun avoidance/security. Microsucks? Yes.
Stout Beer
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

Your constructor issue is none. Even if there is no explicit constructor for a class there is an implicit one. And that's called always if you use the original form of your code, so this is still fine. and it's much better because right now you call two constructors (one on the left, one on the right) and one assignment operator.
The other code should be fine. This is even used with example 14 (the external windows example). And createDeviceEx is also used during the normal device setup (being called by createDevice). So it seems to be a version problem or something.
Mikenoworth
Posts: 78
Joined: Sat May 27, 2006 9:24 pm
Location: Logan, UT

Post by Mikenoworth »

Ya, I saw that it is used by createDevice.

Didn't know about implicit constructors, now I know. Although, I didn't think it was a constructor issue.

:oops: :!: That must be it! I forgot I had to get an older version of my code (2nd hd crash!!), therefore older versions of the dlls, and probably forgot to replace them.. Lets see.. Yeeeaaaap!!

Ah the sour smell of forgetting about the little details.
Stout Beer
Post Reply