Background: After reading quite a few posts where the answer was "Reboot and/or Rebuild", I decided that some people would perhaps want to know the logic behind that advice, and this post is the result.
Hi there,
You have most likely arrived here because you clicked a link in a post where you posted about crashing/some obscure bug.
First of all, do not take offense that you where being redirected here, I like to think there are two groups of people who compile MQ2, and without having to play detective looking up and reading your previous posts, Im just going to ask you to decide for yourself which group you belong to, and if its the second one, you can stop reading now, because you already know why a reboot and a rebuild might be the solution to your problem, but for those of you who are new to compiling mq2, please read on,
Group 1: I haven't restarted my computer and/or rebuilt MQ2. /shrug
Group 2. I already restarted computer, redownloaded zip, deleted folder, recompiled/rebuild and I know why I had to do all that, and my problem still exist. /tap
THE REBOOT
------------------------
Ok so why do we ask you to reboot?
Well, its like this, when you have Everquest running, (or any other application for that matter) and you start Macroquest2.exe
it will inject the MQ2 dlls in the eqgame.exe addresspace which then reside there until they are unloaded.
Lets say that you at this point decide, hey im going to upgrade my MQ2 from the "latest and greatest" zip that was just released by one of the devs.
So you download zip, unpack it into your macroquest2 folder, and fire up visual studio.
You then click build and then you go in game, but whats that? it doesn't seem like you have the latest new features, promised by the new zip...
Frustrated you post about "this and that" not working even though you downloaded and "recompiled"
It is at this point you will get someone to answer "reboot then rebuild".
You get that answer because we suspect that the MQ2 dlls are in use either by eqgame.exe or another process (yes it can happen)
Now, if you are 100% certain no other program is holding your MQ2 dlls "hostage" then YES, you DO NOT have to reboot.
But its a simple way for us to know for sure, that your dlls are not in use.
I suspect all the devs and experienced users never have to reboot, cause we know what programs to kill, and how to release inuse dlls with /unload.
Now if you are familiar with Visual Studio, here is a simple trick you can do to not having to reboot your computer:
Just press F7 and let the whole solution rebuild and do this OVER AND OVER until you see 0 errors and 0 warnings.
This will assure that your newly downloaded source is fully built as well as all the dlls.
If you don't see this, and it says mq2main.dll is in use, start killing programs, like internet explorer and everquest AND macroquest2.exe in the takstray or use /unload if you are sure its just eqgame.exe holding them.
Then press F7 again, if you can't get it to rebuild successfully with no errors and warnings, then restart and try again.
If everything else fails, then suck it up and reboot. It might help, there is a known bug with GetTickCount that can be resolved by doing this, so its not a complete loss...
If after doing all this, and you still experience the crash/bug, you probably have found a real bug, and we are much more willing to spend time, firing up our debuggers and try to fix it for you.

donations for this month's patches.