The detours
package claims to support 64-bit
but I don't see a way to compile 64-bit
binaries:
Detouring 32-bit and 64-bit Processes
Using nmake all
compiles only 32-bit
stuff:
>dir
Volume in drive D is Volume
Volume Serial Number is XXXX-XXXX
Directory of D:\Detours
06/21/2018 03:46 PM <DIR> .
06/21/2018 03:46 PM <DIR> ..
06/23/2018 08:13 PM <DIR> bin.X86
06/20/2017 09:03 AM 5,105 CREDITS.TXT
06/22/2017 03:06 PM 31 Detours Version 3.0 Build_343
10/19/2016 12:06 PM 113,685 Detours.chm
06/23/2018 08:12 PM <DIR> include
06/23/2018 08:12 PM <DIR> lib.X86
10/29/2015 02:19 PM 7,144 LICENSE.RTF
12/21/2016 01:22 PM 1,851 Makefile
06/22/2017 03:06 PM 14,961 README.TXT
06/21/2018 03:04 PM <DIR> samples
06/23/2018 08:12 PM <DIR> src
10/29/2015 02:19 PM 4,841 system.mak
06/22/2017 03:06 PM 31 VERSION.TXT
The nmake size64
command is invalid.
If I use the library (lib.X86
folder) in my Visual Studio C++
project which is configured to produce a 64-bit
DLL
, I get the respective error and it won't build:
library machine type 'x86' conflicts with target machine type 'x64'
Renaming the folder lib.X86
to lib.X64
also does not work.
How can I get it to work in a 64-bit
environment or is it not possible?
It seems like you have to set the target processor to 64-bit and then compile. A working batch (.bat
) script may be something like the following (depending on your Visual Studio installation):
SET DETOURS_TARGET_PROCESSOR=X64
CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
NMAKE
With this, the 64-bit
binaries should compile successfully.