为64位编译Microsoft Detours

时间:2018-06-23 18:32:44

标签: c++ windows visual-studio detours

detours软件包声称支持64-bit,但我看不到编译64-bit二进制文件的方法:

  

绕开32位和64位进程

使用nmake all仅编译32-bit的内容:

>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

nmake size64命令无效。

如果我在lib.X86项目中使用了配置为产生Visual Studio C++ 64-bit的库(DLL文件夹),则会得到相应的错误,它将不会t构建:

library machine type 'x86' conflicts with target machine type 'x64'

将文件夹lib.X86重命名为lib.X64也不起作用。

如何使它在64-bit环境中工作还是不可能?

2 个答案:

答案 0 :(得分:4)

It seems like you have to set the target processor to 64-bit and then compile。有效的批处理(.bat)脚本可能类似于以下内容(取决于您的Visual Studio安装):

SET DETOURS_TARGET_PROCESSOR=X64
CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
NMAKE

这样,64-bit二进制文件应该可以成功编译。

答案 1 :(得分:0)

在命令行上,您可以说

set DETOURS_TARGET_PROCESSOR=X64

,然后执行nmake命令。