[Solved] CEGUI 0.7.1 & Ogre 1.7 w/ VC++ 2008 Express

For help with general CEGUI usage:
- Questions about the usage of CEGUI and its features, if not explained in the documentation.
- Problems with the CMAKE configuration or problems occuring during the build process/compilation.
- Errors or unexpected behaviour.

Moderators: CEGUI MVP, CEGUI Team

ERSmith
Just popping in
Just popping in
Posts: 6
Joined: Wed Mar 17, 2010 20:34

[Solved] CEGUI 0.7.1 & Ogre 1.7 w/ VC++ 2008 Express

Postby ERSmith » Wed Mar 17, 2010 21:01

EDIT: This is my second typing of this rather long message. The forum software errored out on me when I hit submit. I hope I don't leave anything out on this retype.

I am at my wits end here. I've been wrestling with this one for the last few days and nothing seems to solve it. I know there are people using Ogre 1.7 and CEGUI 0.7.1 successfully so I know it is possible.

First, yes, I have searched these forums, the ogre forums and the web in general for a solution. Nothing I found worked.

Here is my setup:
Ogre 1.7 (from source)
Ogre 1.7 dependencies (compiled from source)
CEGUI 0.7.1 (from source)
CEGUI 0.7.1 precompiled depenendencies (for v9)

I am using Visual C++ 2008 Express on a Windows XP Professional installation.

Here is the issue. I have compiled Ogre 1.7 and it runs correctly before even trying to add CEGUIbase_d.dll.

As soon as I add in CEGUIbase_d.dll into the mix my application will cease to initialize. The report stating:

Code: Select all

'Practical Ogre.exe': Loaded 'C:\Documents and Settings\Overlord.VOYAGER\My Documents\Visual Studio 2008\Projects\Practical Ogre\Practical Ogre\bin\Debug\Practical Ogre.exe', Symbols loaded.
'Practical Ogre.exe': Loaded 'C:\WINDOWS.0\system32\ntdll.dll'
'Practical Ogre.exe': Loaded 'C:\WINDOWS.0\system32\kernel32.dll'
'Practical Ogre.exe': Loaded 'C:\Documents and Settings\Overlord.VOYAGER\My Documents\Visual Studio 2008\Projects\ogre\VCBuild\bin\debug\OgreMain_d.dll', Symbols loaded.
'Practical Ogre.exe': Loaded 'C:\WINDOWS.0\system32\user32.dll'
'Practical Ogre.exe': Loaded 'C:\WINDOWS.0\system32\gdi32.dll'
'Practical Ogre.exe': Loaded 'C:\WINDOWS.0\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_f863c71f\msvcp90d.dll'
'Practical Ogre.exe': Loaded 'C:\WINDOWS.0\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_f863c71f\msvcr90d.dll'
'Practical Ogre.exe': Loaded 'C:\WINDOWS.0\system32\ws2_32.dll'
'Practical Ogre.exe': Loaded 'C:\WINDOWS.0\system32\advapi32.dll'
'Practical Ogre.exe': Loaded 'C:\WINDOWS.0\system32\rpcrt4.dll'
'Practical Ogre.exe': Loaded 'C:\WINDOWS.0\system32\secur32.dll'
'Practical Ogre.exe': Loaded 'C:\WINDOWS.0\system32\msvcrt.dll'
'Practical Ogre.exe': Loaded 'C:\WINDOWS.0\system32\ws2help.dll'
'Practical Ogre.exe': Loaded 'C:\Documents and Settings\Overlord.VOYAGER\My Documents\Visual Studio 2008\Projects\ogre\VCBuild\bin\debug\OIS_d.dll', Symbols loaded.
'Practical Ogre.exe': Loaded 'C:\WINDOWS.0\system32\dinput8.dll'
'Practical Ogre.exe': Loaded 'C:\Documents and Settings\Overlord.VOYAGER\My Documents\Visual Studio 2008\Projects\CEGUI-0.7.1\bin\CEGUIOgreRenderer_d.dll', Symbols loaded.
'Practical Ogre.exe': Loaded 'C:\Documents and Settings\Overlord.VOYAGER\My Documents\Visual Studio 2008\Projects\CEGUI-0.7.1\bin\CEGUIBase_d.dll', Symbols loaded.
[b]LDR: LdrpWalkImportDescriptor() failed to probe C:\Documents and Settings\Overlord.VOYAGER\My Documents\Visual Studio 2008\Projects\CEGUI-0.7.1\bin\CEGUIBase_d.dll for its manifest, ntstatus 0xc0150002[/b]
Debugger:: An unhandled non-continuable exception was thrown during process load
The program '[3272] Practical Ogre.exe: Native' has exited with code -1072365566 (0xc0150002).


It appears to be the classic missing ATL security fix issue. However, upon looking at my VC++ 2008 express installation, it says I have sp1 and a few other updates.

Still I downloaded the ATL fix file(s) and after 6 hours of downloading it tells me that the patch does not apply. Imagine my frustration at that.

I tried the redistributable package too but that also does not apply. I suspect it is because it already exists on my system.

The only other solutions I saw were to download and recompile all the CEGUI dependencies (which didn't work) and to get VS 2005 and recompile everything (which is as silly as fixing your car by buying a new one).

What am I missing here? I have probably made some minor mistake that will be obvious to everyone else and make me feel stupid but since I am not seeing it I seem to have exhausted my options.
Last edited by ERSmith on Thu Mar 18, 2010 18:36, edited 1 time in total.

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: CEGUI 0.7.1 & Ogre 1.7 w/ VC++ 2008 Express (side by side)

Postby CrazyEddie » Thu Mar 18, 2010 09:39

Because you're building from source you should not be getting any issues at all (yeah, stating the obvious, I know).

It seems to me that it's just a case that the manifest embedding may have failed for the DLL - I see this fairly frequently when I have to use MSVC++. Are you able to manually inspect the manifest in the DLL with the manifest tool (mt.exe)? What happens if you just hit build again for CEGUI, and recopy the DLL file(s)?

Sorry I have not been able to give a definitive answer, though it seems it's going to be something really silly, like the above :)

CE.

ERSmith
Just popping in
Just popping in
Posts: 6
Joined: Wed Mar 17, 2010 20:34

Re: CEGUI 0.7.1 & Ogre 1.7 w/ VC++ 2008 Express (side by side)

Postby ERSmith » Thu Mar 18, 2010 13:41

Using mt.exe to verify the manifest came out good. I'll try forcing a rebuild of CEGUIBase since the compiler thinks its all ok (except when I try to add it to OGRE).

I'm an old school computer scientists, from when we programmed assembly language one byte at a time if we had to. We didn't have no fancy manifests back then.

Thanks, I'll continue to dig into this as its holding me up right now.

During the recompile I see:

Code: Select all

Compiling...
CEGUIImageset_xmlHandler.cpp
c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiimageset_xmlhandler.h(65) : warning C4251: 'CEGUI::Imageset_xmlHandler::ImagesetSchemaName' : class 'CEGUI::String' needs to have dll-interface to be used by clients of class 'CEGUI::Imageset_xmlHandler'
        c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiforwardrefs.h(99) : see declaration of 'CEGUI::String'
c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiimageset_xmlhandler.h(67) : warning C4251: 'CEGUI::Imageset_xmlHandler::ImagesetElement' : class 'CEGUI::String' needs to have dll-interface to be used by clients of class 'CEGUI::Imageset_xmlHandler'
        c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiforwardrefs.h(99) : see declaration of 'CEGUI::String'
c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiimageset_xmlhandler.h(69) : warning C4251: 'CEGUI::Imageset_xmlHandler::ImageElement' : class 'CEGUI::String' needs to have dll-interface to be used by clients of class 'CEGUI::Imageset_xmlHandler'
        c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiforwardrefs.h(99) : see declaration of 'CEGUI::String'
c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiimageset_xmlhandler.h(71) : warning C4251: 'CEGUI::Imageset_xmlHandler::ImagesetNameAttribute' : class 'CEGUI::String' needs to have dll-interface to be used by clients of class 'CEGUI::Imageset_xmlHandler'
        c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiforwardrefs.h(99) : see declaration of 'CEGUI::String'
c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiimageset_xmlhandler.h(73) : warning C4251: 'CEGUI::Imageset_xmlHandler::ImagesetImageFileAttribute' : class 'CEGUI::String' needs to have dll-interface to be used by clients of class 'CEGUI::Imageset_xmlHandler'
        c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiforwardrefs.h(99) : see declaration of 'CEGUI::String'
c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiimageset_xmlhandler.h(75) : warning C4251: 'CEGUI::Imageset_xmlHandler::ImagesetResourceGroupAttribute' : class 'CEGUI::String' needs to have dll-interface to be used by clients of class 'CEGUI::Imageset_xmlHandler'
        c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiforwardrefs.h(99) : see declaration of 'CEGUI::String'
c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiimageset_xmlhandler.h(77) : warning C4251: 'CEGUI::Imageset_xmlHandler::ImagesetNativeHorzResAttribute' : class 'CEGUI::String' needs to have dll-interface to be used by clients of class 'CEGUI::Imageset_xmlHandler'
        c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiforwardrefs.h(99) : see declaration of 'CEGUI::String'
c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiimageset_xmlhandler.h(79) : warning C4251: 'CEGUI::Imageset_xmlHandler::ImagesetNativeVertResAttribute' : class 'CEGUI::String' needs to have dll-interface to be used by clients of class 'CEGUI::Imageset_xmlHandler'
        c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiforwardrefs.h(99) : see declaration of 'CEGUI::String'
c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiimageset_xmlhandler.h(81) : warning C4251: 'CEGUI::Imageset_xmlHandler::ImagesetAutoScaledAttribute' : class 'CEGUI::String' needs to have dll-interface to be used by clients of class 'CEGUI::Imageset_xmlHandler'
        c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiforwardrefs.h(99) : see declaration of 'CEGUI::String'
c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiimageset_xmlhandler.h(83) : warning C4251: 'CEGUI::Imageset_xmlHandler::ImageNameAttribute' : class 'CEGUI::String' needs to have dll-interface to be used by clients of class 'CEGUI::Imageset_xmlHandler'
        c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiforwardrefs.h(99) : see declaration of 'CEGUI::String'
c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiimageset_xmlhandler.h(85) : warning C4251: 'CEGUI::Imageset_xmlHandler::ImageXPosAttribute' : class 'CEGUI::String' needs to have dll-interface to be used by clients of class 'CEGUI::Imageset_xmlHandler'
        c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiforwardrefs.h(99) : see declaration of 'CEGUI::String'
c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiimageset_xmlhandler.h(87) : warning C4251: 'CEGUI::Imageset_xmlHandler::ImageYPosAttribute' : class 'CEGUI::String' needs to have dll-interface to be used by clients of class 'CEGUI::Imageset_xmlHandler'
        c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiforwardrefs.h(99) : see declaration of 'CEGUI::String'
c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiimageset_xmlhandler.h(89) : warning C4251: 'CEGUI::Imageset_xmlHandler::ImageWidthAttribute' : class 'CEGUI::String' needs to have dll-interface to be used by clients of class 'CEGUI::Imageset_xmlHandler'
        c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiforwardrefs.h(99) : see declaration of 'CEGUI::String'
c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiimageset_xmlhandler.h(91) : warning C4251: 'CEGUI::Imageset_xmlHandler::ImageHeightAttribute' : class 'CEGUI::String' needs to have dll-interface to be used by clients of class 'CEGUI::Imageset_xmlHandler'
        c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiforwardrefs.h(99) : see declaration of 'CEGUI::String'
c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiimageset_xmlhandler.h(93) : warning C4251: 'CEGUI::Imageset_xmlHandler::ImageXOffsetAttribute' : class 'CEGUI::String' needs to have dll-interface to be used by clients of class 'CEGUI::Imageset_xmlHandler'
        c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiforwardrefs.h(99) : see declaration of 'CEGUI::String'
c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiimageset_xmlhandler.h(95) : warning C4251: 'CEGUI::Imageset_xmlHandler::ImageYOffsetAttribute' : class 'CEGUI::String' needs to have dll-interface to be used by clients of class 'CEGUI::Imageset_xmlHandler'
        c:\documents and settings\overlord.voyager\my documents\visual studio 2008\projects\cegui-0.7.1\cegui\include\ceguiforwardrefs.h(99) : see declaration of 'CEGUI::String'


I wonder if that has anything to do with the issue. They are warnings so I tend to ignore them.

Also later on I find a series of :

Code: Select all

freetype_D.lib(ftsystem.obj) : warning LNK4099: PDB 'vc80.pdb' was not found with '../../../dependencies/lib/dynamic\freetype_D.lib' or at 'c:\Documents and Settings\Overlord.VOYAGER\My Documents\Visual Studio 2008\Projects\CEGUI-0.7.1\bin\vc80.pdb'; linking object as if no debug info


Which seems to indicate that the precompiled dependencies were using vc8 instead of 9. At this point, I am just guessing, though.

Well nuts. After recompiling I still have the same issue.

EDIT: I realize this is becoming quite long but I wanted to post what I am doing in case it helps someone else.

I have been chasing down this side by side problem.

BTW- you can get better info from examing the event log viewer under system (when using xp or vista). It will tell you what is really missing.

In my case I get :

Code: Select all

Dependent Assembly Microsoft.VC80.DebugCRT could not be found and Last Error was The referenced assembly is not installed on your system.


You can then look in Windows/WinSxs and see if a directory with that name exists or not. In my case, I do not have a VC80.DebugCRT because I don't have VC80 installed. Further, there is no redistributable of the VC80 debug CRT.

It is probably no accident that in my research I have found the words Hell and Manifest used in the same sentence.

Given that it is apparent that something in CEGUIBase_d.dll (and likely CEGUIBase.dll) was looking for vc80.pdb as shown above, I am suspecting that freetype_D.lib is the culprit. I will edit this post when I find out one way or another.

The vc80 Debug CRT requirement explains why installing VC2005 worked for people.
Last edited by ERSmith on Thu Mar 18, 2010 15:58, edited 1 time in total.

ERSmith
Just popping in
Just popping in
Posts: 6
Joined: Wed Mar 17, 2010 20:34

Re: CEGUI 0.7.1 & Ogre 1.7 w/ VC++ 2008 Express (side by side)

Postby ERSmith » Thu Mar 18, 2010 15:50

Ok, for the grand solution.

I had two copies of the dependencies in my download directory and apparently had unzipped the vc 2005 zip file and not the vc 2008 zip file.

Thus all the dependencies having trouble finding the vc80.pdb and their inexplicable desire to find the vc 80 debug crt.

So, there it is, the silly minor thing that will make me feel stupid.

User avatar
CrazyEddie
CEGUI Project Lead
Posts: 6760
Joined: Wed Jan 12, 2005 12:06
Location: England
Contact:

Re: [Solved] CEGUI 0.7.1 & Ogre 1.7 w/ VC++ 2008 Express

Postby CrazyEddie » Fri Mar 19, 2010 09:33

hehe :) Glad you figured it out.

CE.


Return to “Help”

Who is online

Users browsing this forum: No registered users and 11 guests