Compiler Problems

A forum for feature requests/discussions and user submitted patches that improve MQ2

Moderator: MacroQuest Developers

Mckorr
Developer
Developer
Posts: 2326
Joined: Fri Oct 18, 2002 1:16 pm
Location: Texas

Post by Mckorr » Tue Mar 25, 2003 3:08 pm

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....

keflex
Contributing Member
Contributing Member
Posts: 11
Joined: Tue Mar 25, 2003 1:27 pm

Post by keflex » Tue Mar 25, 2003 4:21 pm

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....
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!).

I really appreciate you and the others in this thread taking the time out to help a newbies like myself.

:D

Mckorr
Developer
Developer
Posts: 2326
Joined: Fri Oct 18, 2002 1:16 pm
Location: Texas

Post by Mckorr » Tue Mar 25, 2003 5:23 pm

Yeah, that's what I meant. Replace the VC dinput.h with the one from the SDK. Glad you got it working. Will include a correct dinput.h and fix the source code next time I update my version.

Non M$ Coder
a lesser mummy
a lesser mummy
Posts: 43
Joined: Sun Apr 13, 2003 8:00 pm

Having some compile problems

Post by Non M$ Coder » Sun Apr 13, 2003 8:31 pm

---edit--- posted this in the wrong thread, disregard.

Non M$ Coder
a lesser mummy
a lesser mummy
Posts: 43
Joined: Sun Apr 13, 2003 8:00 pm

Post by Non M$ Coder » Sun Apr 13, 2003 8:33 pm

I am not a novice programmer, but I am very new to VC++ (just installed it to get MQ up and running). I have worked a lot in C++ in the past, but almost exclusively in a *nix environment. The C++ I have done on the windows side I was using code warrior as my IDE, and lately I've been working mainly in java.

I have followed the instructions above to the best of my ability, and have complied with all I think.

After doing these I get the following errors:
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)
I tried chasing these down starting at the top, but that wasnt too fruitful.
IDirectInputDevice8A **EQADDR_DIKEYBOARD=0;
IDirectInputDevice8A **EQADDR_DIMOUSE=0;
give errors but
PZONELIST **EQADDR_ZONELIST=0;
for instance does not.

This stuff seems pretty low level in an area I am not familiar with at all. The ( mismatches seem to be phantom. I think there is a simple problem in the setup or build instructions, but as mentioned, im a VC++ newb, and it took me a while just to find where I could do things like set my defines. At any rate, any help would be greatly appreciated.

Also am I ok working with the latests zip? I saw some references to grabbing files straight from the source tree in other threads, a practice I'm hesitant to pursue unless absolutely necessary (I've done it with other stuff, I just find it a pain if I am not intimate with the code).

Thanks for any insight you can give me,

Eric

Non M$ Coder
a lesser mummy
a lesser mummy
Posts: 43
Joined: Sun Apr 13, 2003 8:00 pm

Post by Non M$ Coder » Sun Apr 13, 2003 8:54 pm

Bleh, seems I overlooked the fact that there were 6 more pages on this thread. I think I have the wrong directx include, will try again now that I've found the dx8.1 sdk on the m$ site. (only 165MB too, glad its not bloated or anything...)

--edit--

after reading through the thread, I was able to get clean compiles. Should i be copying the offsets from the offset thread and not taking the ones from the quicklink? I am assuming so.

Thanks to all the helpful posts!

Clawed
a ghoul
a ghoul
Posts: 105
Joined: Mon Jan 20, 2003 6:17 am

Post by Clawed » Sun Apr 13, 2003 11:52 pm

At this moment, the only way to get a working copy of MQ (not just one that compiles, one that actually works with today's everquest), you need to download the CVS module. This will also grab the correct eqclient.ini file (and thus, the current offsets). L12ard and co. haven't yet updated the front page links, or made a new distribution package.
Clawed

Non M$ Coder
a lesser mummy
a lesser mummy
Posts: 43
Joined: Sun Apr 13, 2003 8:00 pm

Post by Non M$ Coder » Mon Apr 14, 2003 7:15 pm

Just grabbed it from cvs (sort of) and re-built, but it doesn't matter since they patched EQ.exe again today.

By "sort of" above, I had to relearn what little I knew about CVS clients and pick up some new stuff. I checked out to a temp directory then coppied the files over to where I set up my build directories. When things settle down I will bite the bullet, check out to what will be the MQ permanant home, and redo the projects. I think I picked a bad time to try to get MQ, it's enough of a pain to learn a new IDE, new CVS client (went with turtle over command line or wincvs, so that was new to me), and all the quirks of getting the compile and environment right without having to worry about whether you did something wrong or if it is just a patch to EQ that is killing you.

User avatar
ap50
a snow griffon
a snow griffon
Posts: 425
Joined: Sun Aug 18, 2002 2:29 pm

Post by ap50 » Mon Apr 14, 2003 8:06 pm

If they've not changed any of the structures, as I believe they haven't, the MQ you compile from the CVS will work just fine as soon as someone completes the offsets, as it's 1am here, I'm not in the mood to start on them, so will let someone else bask in the glory :P

If they're giving people problems I'll have a look in 7 hours time when I get up for work.

But looking at the couple already posted, it looks like a simple 4k byte difference.

I really have to come up with a greeting a-la Liz, but I don't think Greetings Pond-scum, has the same ring to it, do you? :D
[color=yellow][size=92][b]Just because you're paranoid, it doesn't mean everyone isn't out to get you![/b][/size][/color]

FrankJScott
naggy
naggy
Posts: 2128
Joined: Sun Feb 19, 2023 7:11 am

Top Asian Toto Casino Site

Post by FrankJScott » Thu Dec 18, 2025 10:21 am

For the guy talking about web slot, angka togel hari ini, keluaran sg metro, slot play, bandar togel online terbaik, angka togel singapura, cara main slot mudah menang, judi slot online adalah, slot main, slot casino online, keluaran togel online, permainan judi slot yang mudah menang, I highly recommend this recommended you read for asian toto casino details or slot spadegaming, permainan casino yang mudah menang, judi pulsa, slot casino online indonesia, situs judi online terbaik, sbobet casino, aplikasi situs slot, main casino, uang slot, bandar togel adalah, pg soft terbaru, judi togel singapore, together with this more helpful hints on asian toto casino link together with situs agen slot terpercaya, situs idn play terpercaya, slot resmi singapore, situs togel dan slot terlengkap, togel online terpercaya, bandar togel terbaik, dan terpercaya, keluaran angka hari ini, deposit pulsa adalah, pragmatic play apa itu, slot member baru, master togel slot login, and don't forget this go here for Asian Toto Casino info which is also great. Also, have a look at this good on asian toto casino url and don't forget kumpulan situs judi terpercaya, slot ke dana, situs new member, slot ygg, 4d slot, agen toto terpercaya, cara bermain togel online, angka keluaran hongkong hari ini, situs slot terbagus, link judi togel, web slot online, kata sandi slot, alongside all this see page about asian toto casino forum which is worth considering with situs togel singapore, slot termudah menang, toto slot dan togel, bersama slot, game slot online terbaik, what is it worth on bearing in mind situs terpercaya di indonesia, daftar slot dana, angka togel hari ini, yg keluar togel hari ini, game slot login, and get the facts on for good measure. Check more @ Useful Asian Toto Casino Tips 3ce3c8d

FrankJScott
naggy
naggy
Posts: 2128
Joined: Sun Feb 19, 2023 7:11 am

Cool Asian Toto Casino Guide

Post by FrankJScott » Thu Dec 18, 2025 10:58 am

In reply to the people inquiring about slot togel terbaru, togel terpercaya, game judi slot online, judi slot online yang gampang menang, slot deposit dengan pulsa, link apk slot, 10 situs togel terpercaya 2021, daftar slot deposit pulsa, slot resmi deposit pulsa, download apk slot online, prediksi angka togel sgp hari ini, kumpulan situs idnplay, I highly recommend this best asian toto casino info or mudah slot, situs slot menang, situs bola terbaik indonesia, situs resmi bandar togel terpercaya, situs togel yang terpercaya, judi online live, hasil angka toto macau hari ini, 4d slot togel, game togel terpercaya, cara main casino online, situs togel terlengkap, bandar togel hadiah besar, not to mention this see page about asian toto casino details bearing in mind keluaran singapore hari ini, kumpulan situs slot idn terbaru, di situs, agen judi slot, situs slot joker gaming, situs terbesar dan terpercaya, agen slot terbaru, link slot deposit pulsa, situs judi terpercaya, judi togel online terpercaya, apk slot deposit dana, judi slot online mudah menang, not to mention this such a good point for Asian Toto Casino tips which is also great. Also, have a look at this useful asian toto casino forum as well as situs slot idn terbaru, link slot terbaik, deposit via, daftar situs togel online, slot dari dana, slot bisa deposit pulsa, situs togel terbaik dan terpercaya, main slot pragmatic, data togel hk, slot gameplay, situs togel terbaru, togel terpercaya, as well as this see page on asian toto casino info on top of togel dewa, indonesia slot online, toto slot dan togel, situs slot togel terbaru, game slot mudah menang, learn more here on not to mention situs slot deposit pakai dana, crazy slot login, situs idn play, judi online terbaik, link slot online, and related site on for good measure. Check more @ Useful Asian Toto Casino Info 9f252a1