Jump to content
  • Advertisement
Sign in to follow this  
mrmrcoleman

Version error....

This topic is 4625 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

Hello, I have just recompiled my project and I am getting an odd error. D3D ERROR: D3D header version mismatch The application was compiled against and will only work with D3D_SDK_VERSION (32), but the currently installed runtime is version (31) Recompile the application against the appropriate SDK for the installed runtime But I haven't changed the runtime, infact I haven't touched the project for about a week..? Any help appreciated. Mark

Share this post


Link to post
Share on other sites
Advertisement
Quote:
Original post by mrmrcoleman
The application was compiled against and will only work with D3D_SDK_VERSION (32), but the currently installed runtime is version (31) ...
But I haven't changed the runtime, infact I haven't touched the project for about a week..


I believe the version numbers you mentioned are DX9c and DXb, respectively.

Both should match, and probably be the June 2005 edition of DX9c. Remove all old SDKs and reinstall the latest one, and install the debug and release drivers for that SDK at the same time.

frob.

Share this post


Link to post
Share on other sites
Ok, for unavoidable reasons I am using the Summer 2003 SDK. I tried uninstalling and then re-installing but I get exactly the same error.

Does anybody have any ideas what might be going on here?

The program has been functioning perfectly for the last 12 months and now BAM!

Thanks for any help, this is getting really annoying now!

Mark

Share this post


Link to post
Share on other sites
Idea #1:

Delete all temporary (obj, etc) files from the project, including any precompiled headers, do a "Clean" on the project, then do a "Rebuild All".

If you previously built your project with a previous SDK, there's a chance that an auto-generated project file such as a precompiled header will still contain the current number for that #define - then when you change SDKs versions, the compiler has missed the fact that the header has changed so won't rebuild said temporary file.


Idea #2:

Ensure your machine doesn't have multiple copies of d3d9.h, and if it does, make sure MSVC *and* the project are pointing at the right version. This could be the case if you have a newish platform SDK installed which has a newer header than the one in your SDK - or if you had a duplicate of the files anywhere else.

You could download FileMon (www.sysinternals.com) and run that in the background when you Rebuild All to see which version MSVC is picking up and from where...

Share this post


Link to post
Share on other sites
S1CA,

I removed the intermediate files and did a clean. Same results.

Searching the hard drive reveals that I only have 1 version of d3d9.h and 1 version of d3d9.lib, but there are 2 versions of d3d9.dll. The first is in WINDOWS\System32, the second is in WINDOWS\ServicePackFiles\i386.

Although removing the servicepack version has no effect, and removing the system32 version obviously causes the program to not run at all...!

This is incredibly annoying! I don't suppose there is much point in me trying FileMon considering there is only one version of the header and the lib?

Mark

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Hi, Mark!

I'm a real newbie, so maybe this doesn't work for you, but try to run the compiled rpoject with the DirectX debugger on (Ctrl+Alt+F5 in my case).

Good luck!

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.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!