OgreDotNet using VS2005 : error R6034 when running demos
Thanks to other posts on this forum, I've been able to build OgreDotNet using VC# Express 2005 and VC++ Express 2005 (going back and forth between the two).
My bin/debug/ folder has been filled with compilation outputs, including the bindings dll, OgreDotNet.dll, CeguiDotNet.dll, Math3D.dll, the demo exes, and of course the pdbs.
I've copied the whole output to OgreSDK\bin\debug.
So far, so good - I'm on tracks. Problems come when I start a demo or use the .net dlls in my own projects : code crashes at first Ogre call, a dialog says msvcp80d.dll is missing.
Adding this dll to the right folder only helps getting a better error message :
An application has made an attempt to load the C runtime library without using a manifest.
This is an unsupported way to load Visual C++ DLLs. You need to modify your application to build with a manifest.
For more information, see the 'Visual C++ Libraries as Shared Side-by-Side Assemblies' topic in the product documentation."
I'm unable to tell which DLL is trying to load Visual C++ DLLs without a manifest - the *bindings.dll have been compiled with automatic manifest generation. Maybe the OgreSDK\bin\debug DLLs do not include manifests ? I don't know how to check that (I'm using VS.NET 2005 SDK)
As a side note, this does occur on Windows XP, and doesn't on Windows 2000 (as explained in some msdn article, win2k does not require manifests).
Has anyone been able to use VS2005 with OgreDotNet on WinXP ?
Thanks in advance for any clue.
I think the problem might come from platform_d.dll, which might have been badly distributed (no manifest ?).
If I replace platform_d.dll with platform.dll from the release directory, and add ogremain.dll (required by platform.dll), the demos are able to run a bit farther. Instead of crashing when loading platform_d.dll, they crash when loading RenderSystem_Direct3D7.dll. If I replace the debug version of this dll with the release version, a memory access error occurs - which means I'm still stuck, although I guess the problem comes from bad debug DLLs in the VS2005 Ogre SDK.
Is it possible to compile OgreDotNet with the Ogre release DLLs ?
Relaese mode is working, at least for me on VS 2003.
If you want to use Ogre Release DLLs with ODN Debug. Change the Bindings projects lib inputs, Remove the _d from the lib filenames. That should work too.
If you run depends.exe on ogreplatform_d.dll, you'll see that the .dll can not find msvcp80d.dll and msvcr80d.dll. Depends is a great little tool that ships with vc6/7/8 and shows which dll's a given .exe or .dll depend on.
I'm assuming that ogreplatform_d.dll from the vc8 SDK (1.07) was just built incorrectly without a manifest. Oddly enough, if you run a sample debug app built against the 1.07 SDK (e.g. Demo_Grass), this problem doesn't occur. Therefore DLL loading must behave differently when your running a .NET app vs. a native app for whatever reason. I'm going to take a stab at building ogreplatform_d.dll and see how that goes.
Rebuilding ogreplatform_d.dll did the trick, but then when I tried one of the demo ogredotnet apps, it would crash when it hit one of the render dll's. I rebuilt the dx9 dll and got around that problem, but then I hit another crash. Blah. Looks like I just need to rebuild the whole SDK from scratch to get this to work. Maybe tomorrow.
Thank you to both rastaman and Andrew Patzwald, too bad it's the worst possible outcome : the whole SDK was missing manifests.
I had already used "depends" to detect the missing ms*80d.dll, and adding them allowed me to get the R6034 error.
Thank you Andrew for taking the time to rebuild the SDK !
Thanks to all the great tips on these forums, this newbie has been able to get a long way up the Ogre and OgreDotNet set-up learning curves the last couple of days. So I've experienced first-hand a lot of the usual newbie troubles, and been grateful for the generous experience and insight of others.
I've been successful in getting the Ogre samples working, and followed some of the tutorials
, but I'm really interested in using Ogre 1.2 in viewports on a Windows Form application in Visual Studio 2005 (
NOT Express), under Windows XP, preferrably using C#
. But when it came to compiling the ODN demos, I've had all the usual errors about missing MSVC*.dll, R*** error etc. - and I'm fairly sure that my resource config file paths are ok...
So, (presuming I've got everything else ok ...
) it would seem from the Forum discussions that to get the OgreDotNet samples to work, it looks like I'm going to have to go right back to the start and rebuild the Ogre libraries from scratch, with the aim to get manifest files out of the build. Is this correct? And if so, exactly which of the current project / solution settings need to be changed to create these files? Presumably once they are made, I just port them along with the dll's etc into my project folder alongside my exe, and the OgreDotNet samples should just work?
Many thanks in anticipation,
So, (presuming I've got everything else ok ... Confused ) it would seem from the Forum discussions that to get the OgreDotNet samples to work, it looks like I'm going to have to go right back to the start and rebuild the Ogre libraries from scratch, with the aim to get manifest files out of the build. Is this correct? And if so, exactly which of the current project / solution settings need to be changed to create these files? Presumably once they are made, I just port them along with the dll's etc into my project folder alongside my exe, and the OgreDotNet samples should just work?
Greenjacket: this is an old topic have you tried the new ODN prebuild dlls? http://www.ogre3d.org/phpBB2addons/viewtopic.php?t=1203
I'v been able to run 2005 release stuff ok. I built the 2005 dlls with VS2005 express. I don't know why the Debug versions don't work. I can't even use debug in the VCSexpress IDE. I gess it has to do with the debug c++ bindings dlls. express doesn't install all the dlls. The msvcpd.dll?, x86 version, I can't even find it anywhere on my system
, I saw the 64b version somewhere but i don't have a 64b system.
Many thanks Rastaman.
I've been able to get most of the OgreDotNet demos running now.
I rebuilt Ogre 1.2 from source, exporting the manifest files. I've put the manifest files in with the demos. The demos also seem to need the original Ogre dlls (not the cut-down built-with-manifest versions); I put msvcr80.dll and msvcp80.dll in the demo folder but that didn't help - I found these release versions on my system under C:\Windows\WinSxS\x86_Microsoft.VC80.CRT_<whatever>. Apparently they should be installed with vcredist_x86.exe, which I found under C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\ - I double clicked on that, and it seemed to help! msvc*8*.dll found!
(The dll's and vcredist_x86.exe can be downloaded - e.g. http://download.berlios.de/pyogre/vcredist_x86.exe
The following demos work fine:
... really swish. OgreDotNet must be an almost transparent wrapper! Well done OgreDotNet!!
I've had a few problems with some of the demos though:
DemoGrass.exe works, if a little jerkily, and complains on exit;
DemoCEGUIMenus.exe crashes; black screen, dialog about requesting abnormal termination;
The following display the Ogre dialog, then when click ok, get a black screen, then shut down without messages:
Do you have any ideas why some of these demos won't work?
Many thanks again,
Sorry Rastaman, I should have said - I used your new binaries as well - worked a treat.
I solved a problem about manifest while using v1.4.3 ogre sdk, maybe it can help you.
Install VS2005 SP1, copy <vs installed path>\VC\redist\x86\Microsoft.VC80.CRT to your exe directory, remember, copy the directory not the contents in it.