Mat*_*owe 2 64-bit preprocessor visual-studio-2008
这是问题所在:
为了#imp为我的32位程序导入正确版本的ADO,我需要知道我是在32位Windows操作系统(意思是文件在Program Files中)还是在64位操作系统上编译(意思是该文件位于Program Files(x86)中.但我找不到一个宏告诉我这个,甚至一个宏告诉我处理器是64位.
当我在运行Visual Studio 2008 Express的64位Windows 7上测试时,定义了以下相关宏:
_M_IX86
X86
但是似乎没有定义任何*64宏,如果它们指的是/ target/architecture而不是当前机器的架构,我认为就是这种情况.
是否有预处理器宏告诉我是否运行64位Windows操作系统?
如果是这样,它是什么?我甚至会满足于告诉我是否使用64位处理器.
(ps我已经知道这个清单)
更新
到目前为止,人们似乎认为没有这样的宏,并且复制DLL或使用环境变量是更好的事情.
因此,考虑到环境变量提示,我通过将两个文件夹 - Program Files(x86)和Program Files - 放在include路径上并使用#import的尖括号语法解决了开发人员的问题.但是,我怀疑我需要为每个版本的操作系统构建发行版本,因为ADO DLL现在是操作系统的一部分,不可再发行.调查那个.
bho*_*ton 10
检查一下:_WIN64
这里描述:
http://msdn.microsoft.com/en-us/magazine/cc300794.aspx
我用它,它的工作原理.
您的情况更复杂,因为您想要了解操作系统而不是编译类型.我一直使用Windows x64,但我编译了32位和64位应用程序._WIN64仅在我编译64位应用程序时定义,而不是在我编译32位应用程序时定义,即使我总是在Windows x64机器上.
我认为你应该以不同方式设置include目录以隐藏这种复杂性.可以假设包含目录在不同的机器上会有很大差异,因此从长远来看,使路径检测完全自动化可能会让您的智能过于聪明.
| 归档时间: |
|
| 查看次数: |
6607 次 |
| 最近记录: |