Page 1 of 1
Another Rf compile problem
Posted: Wed Jul 20, 2005 11:47 am
by Gamespider
Heres the error message I get towards the end of the compile:
Linking...
Creating library ..\RealityFactory.lib and object ..\RealityFactory.exp
Joystick.lib(joystick.obj) : error LNK2001: unresolved external symbol _IID_IDirectInput8A
..\RealityFactory.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Creating browse info file...
Posted: Fri Jul 22, 2005 12:06 pm
by Gamespider
well.. anyone?
Posted: Fri Jul 22, 2005 12:37 pm
by QuestOfDreams
what version of the directx sdk are you using?
make sure that your include and library paths are set up correctly
Posted: Sat Jul 23, 2005 10:48 am
by Gamespider
Using Directx 8.1
Actually, there was some problem in the Genesis3d header joystick.h
Heres the message:
qxBinTriTree.cpp
e\DOWNLOAD_RECENT\RF072ASOURCE\GENESIS_03102005\GENESISLIB\INCLUDE\joystick.h(21) : error C2146: syntax error : missing ';' before identifier 'di'
e\DOWNLOAD_RECENT\RF072ASOURCE\GENESIS_03102005\GENESISLIB\INCLUDE\joystick.h(21) : error C2501: 'LPDIRECTINPUT8' : missing storage-class or type specifiers
e\DOWNLOAD_RECENT\RF072ASOURCE\GENESIS_03102005\GENESISLIB\INCLUDE\joystick.h(21) : error C2501: 'di' : missing storage-class or type specifiers
e\DOWNLOAD_RECENT\RF072ASOURCE\GENESIS_03102005\GENESISLIB\INCLUDE\joystick.h(22) : error C2146: syntax error : missing ';' before identifier 'joystick'
e\DOWNLOAD_RECENT\RF072ASOURCE\GENESIS_03102005\GENESISLIB\INCLUDE\joystick.h(22) : error C2501: 'LPDIRECTINPUTDEVICE8' : missing storage-class or type specifiers
e\DOWNLOAD_RECENT\RF072ASOURCE\GENESIS_03102005\GENESISLIB\INCLUDE\joystick.h(22) : error C2501: 'joystick' : missing storage-class or type specifiers
Then I changed the "LPDIRECTINPUTDEVICE8" to "LPDIRECTINPUTDEVICE" and the "LPDIRECTINPUT8" to "LPDIRECTINPUT8". The compile went properly, but the other error message appeared towards the end.
Posted: Sat Jul 23, 2005 2:38 pm
by QuestOfDreams
Then I changed the "LPDIRECTINPUTDEVICE8" to "LPDIRECTINPUTDEVICE" and the "LPDIRECTINPUT8" to "LPDIRECTINPUT8".
there's your problem
the rf source
compiles as it is you don't have to make any changes, you just have to set up the include paths properly
undo the changes you made and make the directx include path the first entry in your list of include paths
Posted: Sun Jul 24, 2005 4:58 pm
by Gamespider
Did that. It works like a dream....
One doubt though,
Why does the directx include path have to be on the top of the list?
Does this compile wth directz 9 as well? If so, What are the advantages?
Posted: Sun Jul 24, 2005 6:07 pm
by QuestOfDreams
One doubt though,
Why does the directx include path have to be on the top of the list?
otherwise it will find the directx include files (dinput.h in this case) in the standard include path of msvc which contains the include files of an old directx version (directx5 if I remember correctly)
so the files in your directx include path will be ignored which leads to errors like the one you had
Does this compile wth directx 9 as well? If so, What are the advantages?
yes it also compiles with the directx9 sdk (as long as you set it up to be compatible with msvc++ 6) because directx is backwards compatible;
using the directx9 sdk allows you to use functions not available in previous versions, however currently it has no real advantages, because we're using directx7 for the graphics and directx8 for sound and input (joystick)
Re: Another Rf compile problem
Posted: Wed May 13, 2015 2:08 pm
by vastonsmith
The DX specific code of genesis3d is in the directx driver, the source code of the driver is included in the genesis3d source (available on the download page); you'll find the project files under GenesisLib->Engine->Drivers