Moderator: MacroQuest Developers
Thanks very much, McKorr! Everything worked like a charm (apparently I needed to replace the dinput.h in VC w/ the one from SDK, after that, everything ran as smooth as butter!).Mckorr wrote:Okay... well, first, Mckorr's MQ doesn't require you to compile detours since he's already done that for you and adjusted the source code to reflect the correct directories....
Actually, I may not have done that the first time around, but it's there now... note to self: do the same for dinput.h.....
P.S. One more note, you use my version of MQ at your own risk, and no warranty is implied. I tinker with it you see, and it may deviate in the extreme from the Official version. Also, steps posted above won't work for my version anyway, 'cause a lot of the stuff you would be trying to do would screw things up since I did them or did away with them already.
So, to compile SRC-20030308-MCK....Well, first make sure you are using Visual C++ 6.0, not the .NET version....
1. Download and Unzip, making sure to keep the directory structure intact (many bad things will happen if you don't.)
2. Go to the base directory, in my case C:\SRC-20030308-MCK. Double click on the Project Workspace file, SRC-20030308-MCK.dsw.
3. When Visual C++ 6.0 opens, from the top menu select Build, Batch Build. Make sure both boxes in the pop up window are checked. Then click Build.
4. Go get a beer. I optimized this for speed (MQ, not the compiler), so it might take a minute or two to compile.
5. Compiled DLL and EXE file will be in the main Release directory (C:\SRC-20030308-MCK\Release), along with the rest of the files you need (INI files.)
6. If it chokes, go to Build, Batch Build, make sure boxes are checked, and click Clean. This removes messed up intermediate files. Then Go back to Step 3 and try again.
This procedure assumes a working version of dinput.h in your VC include directory, not in the SDK include directory. Just copy and paste it over there till I put dinput.h into my source tree and adjust the paths in the source code....


I tried chasing these down starting at the top, but that wasnt too fruitful.Compiling resources...
Compiling...
EQLib.cpp
c:\src-20030308\eqlib\eqlib.h(51) : error C2143: syntax error : missing ';' before '*'
c:\src-20030308\eqlib\eqlib.h(51) : error C2501: 'IDirectInputDevice8A' : missing storage-class or type specifiers
c:\src-20030308\eqlib\eqlib.h(51) : error C2501: 'EQADDR_DIKEYBOARD' : missing storage-class or type specifiers
c:\src-20030308\eqlib\eqlib.h(52) : error C2143: syntax error : missing ';' before '*'
c:\src-20030308\eqlib\eqlib.h(52) : error C2501: 'IDirectInputDevice8A' : missing storage-class or type specifiers
c:\src-20030308\eqlib\eqlib.h(52) : error C2086: 'IDirectInputDevice8A' : redefinition
c:\src-20030308\eqlib\eqlib.h(52) : error C2501: 'EQADDR_DIMOUSE' : missing storage-class or type specifiers
c:\src-20030308\eqlib\eqlib.cpp(725) : error C2199: syntax error : found 'HRESULT (' at global scope (was a declaration intended?)
c:\src-20030308\eqlib\eqlib.cpp(727) : error C2065: 'This' : undeclared identifier
c:\src-20030308\eqlib\eqlib.cpp(727) : error C2275: 'DWORD' : illegal use of this type as an expression
c:\program files\microsoft visual studio\vc98\include\windef.h(141) : see declaration of 'DWORD'
c:\src-20030308\eqlib\eqlib.cpp(727) : error C2146: syntax error : missing ')' before identifier 'cbObjectData'
c:\src-20030308\eqlib\eqlib.cpp(727) : warning C4229: anachronism used : modifiers on data are ignored
c:\src-20030308\eqlib\eqlib.cpp(727) : error C2078: too many initializers
c:\src-20030308\eqlib\eqlib.cpp(727) : error C2275: 'DWORD' : illegal use of this type as an expression
c:\program files\microsoft visual studio\vc98\include\windef.h(141) : see declaration of 'DWORD'
c:\src-20030308\eqlib\eqlib.cpp(727) : error C2059: syntax error : ')'
c:\src-20030308\eqlib\eqlib.cpp(728) : error C2143: syntax error : missing ';' before '{'
c:\src-20030308\eqlib\eqlib.cpp(728) : error C2447: missing function header (old-style formal list?)
c:\src-20030308\eqlib\eqlib.cpp(1086) : error C2059: syntax error : ')'
c:\src-20030308\eqlib\eqlib.cpp(1087) : error C2059: syntax error : ')'
c:\src-20030308\eqlib\eqlib.cpp(1322) : error C2065: 'IDIDevice' : undeclared identifier
c:\src-20030308\eqlib\eqlib.cpp(1322) : error C2106: '=' : left operand must be l-value
c:\src-20030308\eqlib\eqlib.cpp(1325) : error C2440: '=' : cannot convert from 'int *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
c:\src-20030308\eqlib\eqlib.cpp(1329) : error C2227: left of '->lpVtbl' must point to class/struct/union
c:\src-20030308\eqlib\eqlib.cpp(1329) : error C2227: left of '->GetDeviceData' must point to class/struct/union
c:\src-20030308\eqlib\eqlib.cpp(1334) : error C2065: 'DInputDataTrampoline' : undeclared identifier
c:\src-20030308\eqlib\eqlib.cpp(1334) : error C2227: left of '->lpVtbl' must point to class/struct/union
c:\src-20030308\eqlib\eqlib.cpp(1334) : error C2227: left of '->GetDeviceData' must point to class/struct/union
events.cpp
PerlMod.cpp
PerlModCore.cpp
stdafx.cpp
timers.cpp
Error executing cl.exe.
eqlib.dll - 26 error(s), 1 warning(s)



