Link to home
Start Free TrialLog in
Avatar of asoofi
asoofi

asked on

Simple DirectX application won't run on anyone else's computer

I have a simple C++ DirectX project.  It makes a blue rectangle.  Straight out of Wendy Jones' "Beginning DirectX 9".

It compiles and runs fine on my computer.  I have the latest version of the SDK installed, 9.0c (Summer 2004) that came out last week.


However, when I send the small 120k executable (in Debug configuration) or the 44k executable (in Release configuration) to anyone else and they execute it, then it just flickers on and off.

I pinpointed the problem to this line of the code:

      // Create the DirectX object
      if( NULL == (pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) )
      {
            return false;
      }

The Direct3DCreate9 is returning NULL on everyone's computer but mine.  I've tried installing the DirectX Runtime that came in the "Redist" folder that came with the SDK on both of the other computers, and still, both fail to create the DirectX object.

I'm running Windows Server 2003, Visual Studio .NET 2003 and DirectX 9.0c SDK (Summer 2004)

One of the computers I tested on was running Windows Server2003 and DirectX 9.0b.
I upgraded it to 9.0c using the files in the "Redist" folder and now it runs the 9.0c, but still fails to create the object.

The second computer I tested on is running Windows XP SP2 and DirectX 9.0c.
The program fails to create the DirectX object there too.

dxdiag didn't return anything interesting.

Any ideas?  Why would DirectX applications developed on my workstation not run on other workstations?
Avatar of cmreichl
cmreichl

Haven't had time to read this fully yet, but first thing that pops in my head is to run dxdiag on those other machines and make sure that dx9 is working properly... that being said, we can know for sure if its code or dx.

-Chris
Avatar of asoofi

ASKER

dxdiag didn't return anything interesting on any of the computers.
everything's running fine, "no problems found."
ASKER CERTIFIED SOLUTION
Avatar of info_expert
info_expert
Flag of Pakistan image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
it may be worth to check if you accidentaly built the project as a .net application.  I have heard of some problems if the framwork is not the correct version that the compiler used to build on, but I havn't heard about anyone doing directx  in a .net program.
Is the grapics card you're attempting to run it on fully supportive of DirectX9?

Instead of using the release version of DirectX, you should go into control panel and open the DirectX applet, from here turn on the debug output from DirectX to maximum. This will only work if you have installed the debug runtimes of DX which come with the SDK, so that shouldn't be a problem.

When you run your program in debug mode, watch your debug output window and you'll see DirectX is a lot more verbose about it's operations. It should give you an error code or message that you will be able to use to search for your problem.
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial