I just got everything to compile as debug & run with a 64-bit setup in VS2010 pro & wanted to share some of the issues I worked through. Perhaps these are unique to my machine, but maybe it will help someone else. This was done with the 39c6b48a9116201580de2521d260d0c3cafd4120 revision from GIT.
Issue 1) cmake-gui 2.8.2 refused to detect my machine as 64-bit. I kept getting "detected a 32-bit platform". To stop this, I went into /cmake/macros/CheckPlatform.cmake and just commented out the 32-bit check:
#if(CMAKE_SIZEOF_VOID_P MATCHES 8)
set(PLATFORM 64)
MESSAGE(STATUS "Detected 64-bit platform")
#else()
# set(PLATFORM 32)
# MESSAGE(STATUS "Detected 32-bit platform")
#endif()
I turned off PCH & the bundled mysql libraries (I'm using MySQL 5.5 64-bit):
* Build world/auth : Yes (default)
* Build with scripts : Yes (default)
* Build map/vmap tools : No (default)
* Build core w/PCH : No
* Build scripts w/PCH : No
* Use SFMT for RNG : No (default)
* Show compile-warnings : No (default)
* Use coreside debug : No (default)
* Use MySQL sourcetree : No
* Install SQL-files : No (default)
Issue 2) When I then tried to compile TrinityCore.sln as 64-bit, I got errors in ace, authserver, & worldserver saying:
Error 1 error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
To fix this, I had to go into each of those projects' properties, go to Configuration->Linker->Command Line->Additional Options and remove "/machine:X86". Not sure why cmake even put this here, Linker->Advanced has a "target machine" option that seems to be proper place for this directive (and in that place it correctly gets changed to /MACHINE:X64 when you change to a 64-bit configuration)
Finally, I had to copy libmysql.dll to the compiled bin directory.
And voila - it finally works. After hours of attempting to compile I get to test out the code change that only took 15 minutes to write...