Sign in to follow this  
tiger54

Release version doesnt work on other computers

Recommended Posts

Hi! I made a Release version to play my game on other computers. The application give an error message, it say that the DX SDK was not found! I compiled my program with DX9c and my friend has DX9c (retail version). in the Debug I have this libraries: dxerr9.lib dxguid.lib d3dx9dt.lib d3d9.lib comctl32.lib and in the release: dxerr9.lib dxguid.lib d3dx9.lib d3d9.lib comctl32.lib (no debug libraries...) Maybe more people have this problem, and maybe (I hope) someone can help me. Thanks!

Share this post


Link to post
Share on other sites
Did you write your app by adapting from the sample framework?

Just a theory, but maybe your friends graphic card does not have the same capabilities as yours and the app tries to fall back to the reference device, which is only available with the SDK, hence the error message.

Does your app fall back to the reference device if capabilities are not available in hardware.

If so, do you remove the code which does this in your release version?

HTH,
Cambo_frog

Share this post


Link to post
Share on other sites
Quote:
Original post by Cambo_frog
Did you write your app by adapting from the sample framework?

Yes! from the Emptyproject.

Quote:

If so, do you remove the code which does this in your release version?

I have only a 2.0 pixelshader and a 2.0 vertexshader. If I start my computer with WinME, the program will not start at all (without messages or errors)...

Share this post


Link to post
Share on other sites
To test if the error message "SDK was not found" was caused by your app trying to switch to the reference device on a machine which does not have the SDK installed, add this code to the top of your IsDeviceAcceptable callback function:

#ifndef _DEBUG
if ( pCaps->DeviceType != D3DDEVTYPE_HAL )
return false;
#endif



Do a release build of your app and give the new version to your friend.

If the "SDK was not found" error was caused previously by your app trying to switch to the reference device on a machine which does not have the SDK installed, He should now see the error message "Could not find any compatible Direct3D devices" instead.


Quote:

I have only a 2.0 pixelshader and a 2.0 vertexshader


The EmptyProject sample only requires vertex shader version 1.1.
Have you added functionality to your app which requires > VS and PS version 2?

Does your app require the reference device to run on your own machine?

Quote:

If I start my computer with WinME, the program will not start at all (without messages or errors)...


Sorry, I have never used ME so I can't help with this.

HTH,
Cambo_frog



Share this post


Link to post
Share on other sites
I added the code to my game, and it still say: "ensure that DX SDK is installed".

And about the VS/PS... yes, I use the version 2.0 but I am sure the other graphic card has this feature. And I don't need any reference device... It is a simply game, the only heavy thing is the shader.

I noticed that in the DXUTInit there are a strange code:

// Verify D3DX version
if( !D3DXCheckVersion( D3D_SDK_VERSION, D3DX_SDK_VERSION ) )
{
DXUTDisplayErrorMessage( DXUTERR_INCORRECTVERSION );
return DXUT_ERR( L"D3DXCheckVersion", DXUTERR_INCORRECTVERSION );
}


D3DX_SDK_VERSION is wrong! Maybe it check sdk so... The "end-machine" will never have the same version of my machine! Could it be that there is an error on the dx-framework?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this