Another Rf compile problem

Programming Reality Factory and Genesis3D.
Post Reply
Gamespider
Posts: 51
Joined: Fri Jul 08, 2005 1:31 pm
Location: India

Another Rf compile problem

Post 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...
Gamespider
Posts: 51
Joined: Fri Jul 08, 2005 1:31 pm
Location: India

Post by Gamespider »

well.. anyone?
User avatar
QuestOfDreams
Site Admin
Posts: 1520
Joined: Sun Jul 03, 2005 11:12 pm
Location: Austria
Contact:

Post by QuestOfDreams »

what version of the directx sdk are you using?
make sure that your include and library paths are set up correctly
Gamespider
Posts: 51
Joined: Fri Jul 08, 2005 1:31 pm
Location: India

Post 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.
User avatar
QuestOfDreams
Site Admin
Posts: 1520
Joined: Sun Jul 03, 2005 11:12 pm
Location: Austria
Contact:

Post 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
Gamespider
Posts: 51
Joined: Fri Jul 08, 2005 1:31 pm
Location: India

Post by Gamespider »

Did that. It works like a dream.... :D

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?
User avatar
QuestOfDreams
Site Admin
Posts: 1520
Joined: Sun Jul 03, 2005 11:12 pm
Location: Austria
Contact:

Post 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)
vastonsmith
Posts: 1
Joined: Wed May 13, 2015 1:53 pm

Re: Another Rf compile problem

Post 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
ashan
Post Reply