Release version doesnt work on other computers

Started by
3 comments, last by tiger54 19 years, 5 months ago
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!
Advertisement
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
For the love of god, please tell me that you've just omitted your error checking code for brevity, and you don't really assume that all those functions succeed.
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)...
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



For the love of god, please tell me that you've just omitted your error checking code for brevity, and you don't really assume that all those functions succeed.
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 versionif( !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?

This topic is closed to new replies.

Advertisement