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...
Another Rf compile problem
-
- Posts: 51
- Joined: Fri Jul 08, 2005 1:31 pm
- Location: India
- QuestOfDreams
- Site Admin
- Posts: 1520
- Joined: Sun Jul 03, 2005 11:12 pm
- Location: Austria
- Contact:
-
- Posts: 51
- Joined: Fri Jul 08, 2005 1:31 pm
- Location: India
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.
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.
- QuestOfDreams
- Site Admin
- Posts: 1520
- Joined: Sun Jul 03, 2005 11:12 pm
- Location: Austria
- Contact:
there's your problemThen I changed the "LPDIRECTINPUTDEVICE8" to "LPDIRECTINPUTDEVICE" and the "LPDIRECTINPUT8" to "LPDIRECTINPUT8".
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
-
- Posts: 51
- Joined: Fri Jul 08, 2005 1:31 pm
- Location: India
- QuestOfDreams
- Site Admin
- Posts: 1520
- Joined: Sun Jul 03, 2005 11:12 pm
- Location: Austria
- Contact:
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)One doubt though,
Why does the directx include path have to be on the top of the list?
so the files in your directx include path will be ignored which leads to errors like the one you had
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;Does this compile wth directx 9 as well? If so, What are the advantages?
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)
-
- Posts: 1
- Joined: Wed May 13, 2015 1:53 pm
Re: Another Rf compile problem
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