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?
Irr 1.10 - createDeviceEx
-
- Posts: 78
- Joined: Sat May 27, 2006 9:24 pm
- Location: Logan, UT
Irr 1.10 - createDeviceEx
Stout Beer
-
- Posts: 33
- Joined: Sat Aug 05, 2006 9:46 pm
-
- Posts: 78
- Joined: Sat May 27, 2006 9:24 pm
- Location: Logan, UT
It's createDeviceEx, what more is there to it?
Okay, just to play along:
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.
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 );
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
-
- Admin
- Posts: 14143
- Joined: Wed Apr 19, 2006 9:20 pm
- Location: Oldenburg(Oldb), Germany
- Contact:
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.
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.
-
- Posts: 78
- Joined: Sat May 27, 2006 9:24 pm
- Location: Logan, UT
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.
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.
Didn't know about implicit constructors, now I know. Although, I didn't think it was a constructor issue.
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