(solved) fatal error LNK1104: ddraw.lib

Started by
8 comments, last by PPCThug 16 years, 8 months ago
I'm using MSVC++ 2005 express edition on windows xp and directx sdk 2007 june my computer has an athlon xp 2400 processor I'm getting an error LINK : fatal error LNK1104: cannot open file 'C:\Program Files\Microsoft DirectX SDK (June 2007)\Lib\x86\ddraw.lib I'm guessing this is due to direct draw being replaced by direct graphics/3d but I wanted some more opinions before I started working on conversion to direct3d. I did some google searching for this problem but I couldn't find much of anything, seems kinda weird. [Edited by - PPCThug on July 24, 2007 7:22:51 PM]
Bloodshed Dev-C++ 4.9.8.0 Mingw DX 9.0a DX SDK 6.1win2k#define WIN32_LEAN_AND_MEANthe Particle Projection Cannon fires a shimmering blue bolt, much like a cross between lightning and a sine wave that ripples along its path.mechwarrior 2 mercenaries, 4 particle projection cannons, thug chassis
Advertisement
Do you have a ddraw.lib in that directory?

DirectX is supposed to be backward compatible do to their COM interfaces,
so DirectDraw should still be avilable.

(Then again, I dont know if DirectX 10 is backward compatible--Perhaps someone
can clarify this for me?)
yes there is a ddraw.lib file there, 5kb dated 5/8/2007
Bloodshed Dev-C++ 4.9.8.0 Mingw DX 9.0a DX SDK 6.1win2k#define WIN32_LEAN_AND_MEANthe Particle Projection Cannon fires a shimmering blue bolt, much like a cross between lightning and a sine wave that ripples along its path.mechwarrior 2 mercenaries, 4 particle projection cannons, thug chassis
hey, just incase, check
1) you've included ddraw.dll to your project dependencies. under Project > Properties > Linker > Input > Additional Dependencies

2) you've added the DX sdk directory as a path for VS. under Tools > Options > Projects & Solutions > VC++ Directories.
done and done, still get the same error message.
Bloodshed Dev-C++ 4.9.8.0 Mingw DX 9.0a DX SDK 6.1win2k#define WIN32_LEAN_AND_MEANthe Particle Projection Cannon fires a shimmering blue bolt, much like a cross between lightning and a sine wave that ripples along its path.mechwarrior 2 mercenaries, 4 particle projection cannons, thug chassis
Odd...

Did you set the paths for *both* Debug AND Release builds?
For the INCLUDE, and LIBRARY paths?

> How are you linking ddraw.lib?

> What happens if you place ddraw.lib in the same directory as your program,
and link via:
#pragma comment (lib, "ddraw.lib")

?
they where set for debug, they are set for both debug and release now (configuration properties -> c/c++ -> general -> additional include directories C:\Program Files\Microsoft DirectX SDK (June 2007)\Include ) (configuration properties -> linker -> general -> C:\Program Files\Microsoft DirectX SDK (June 2007)\Lib\x86)
I link the libraries by going into configuration properties -> linker -> input -> additional dependencies field and typed in the path C:\Program Files\Microsoft DirectX SDK (June 2007)\Lib\x86\ddraw.lib
along with the path for dxguid.lib, dinput.lib and recently c:\windows\system32\ddraw.dll
I spent the better part of a day searching documentation, msdn and google on how to "link library's" in msvc++ 2005 express and ended up guessing at this approach.
Bloodshed Dev-C++ 4.9.8.0 Mingw DX 9.0a DX SDK 6.1win2k#define WIN32_LEAN_AND_MEANthe Particle Projection Cannon fires a shimmering blue bolt, much like a cross between lightning and a sine wave that ripples along its path.mechwarrior 2 mercenaries, 4 particle projection cannons, thug chassis
Did it fix the problem?

If not, I would probably reinstall the DX SDK and start over.
Or, of course, go with Direct3d; however Direct3d uses
DirectDraw
, so that might not work.
PPCThug, did you end up finding the problem?

If not, send me your solution and ill try compiling it (ive got day off, and a little bored). at least then we can see if its specific to your vc++ settings or wether maybe your dx sdk isn't installed properly.
I tried uninstalling and reinstalling direct x sdk which didn't help.
I tried compiling a test direct x program and ended up with different errors.
after searching Google for these new errors I found the problem, when I copied the library paths into vc++ I didn't add quotes to the beginning and end of the paths
I had
"C:\Program Files\Microsoft DirectX SDK (June 2007)\Lib\x86\ddraw.lib "C:\Program
Files\Microsoft
DirectX
SDK
(June
2007)\Lib\x86\dxguid.lib
"C:\Program Files\Microsoft DirectX SDK (June 2007)\Lib\x86\dinput8.lib"

when I should have had
"C:\Program Files\Microsoft DirectX SDK (June 2007)\Lib\x86\ddraw.lib"
"C:\Program Files\Microsoft DirectX SDK (June 2007)\Lib\x86\dxguid.lib"
"C:\Program Files\Microsoft DirectX SDK (June 2007)\Lib\x86\dinput8.lib"

so problem solved

thanks for all the help guys
Bloodshed Dev-C++ 4.9.8.0 Mingw DX 9.0a DX SDK 6.1win2k#define WIN32_LEAN_AND_MEANthe Particle Projection Cannon fires a shimmering blue bolt, much like a cross between lightning and a sine wave that ripples along its path.mechwarrior 2 mercenaries, 4 particle projection cannons, thug chassis

This topic is closed to new replies.

Advertisement