`
shary_1986
  • 浏览: 11170 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

VS 预定义常量_WIN32,WIN32,_WIN64

 
阅读更多

Refer to:

http://fenying.blog.163.com/blog/static/1020559932013725111743857

 

1. Win32

在 Win32 配置下,WIN32 在“项目属性-C/C++-预处理器-预处理器定义”里声明了。

而在 x64 配置下,这个常量并不在项目预定义列表中。这是否说明可以根据 WIN32 来判断是否在 x64 平台呢?不。在 Windows SDK 的 minwindef.h 下第 37 行有如下定义:

 

#ifndef WIN32
    #define WIN32
#endif

 只要包含了 Windows.h,那么 WIN32 常量是肯定定义了的,所以不能用于判断平台环境

但是如果在预处理定义里删掉 WIN32,又不包含 Windows.h,那么 WIN32 未定义。

 

2. _WIN32  &&  _WIN64

在 Windows.h 里没有任何显示定义。在“项目属性-C/C++-预处理器-预处理器定义”下也没有。

根据 MSDN,这是由编译器(ml.exe/ml64.exe)内部定义的。

 _WIN32:Defined for applications for Win32 and Win64. Always defined.

 

    _WIN64:Defined for applications for Win64.

 Win32 配置下,_WIN32 有定义,_WIN64 没有定义。在 x64 配置下,两者都有定义。即在 VC 下,_WIN32 一定有定义

 

3. 总结:

因此,WIN32/_WIN32 可以用来判断是否 Windows 系统(对于跨平台程序),而 _WIN64 用来判断编译环境是 x86 还是 x64

 

4. ifndef: if not define

 

#ifndef _WIN64
	#pragma comment(lib, "x86lib/NeuronDataReader.lib")
#else
	#pragma comment(lib, "x64lib/NeuronDataReader.lib")
#endif 

 

#pragma 指令指定计算机或操作系统特定的编译器功能

链接器首先在当前工作目录中搜索,然后在 LIB 环境变量指定的路径中搜索。

 

 

分享到:
评论

相关推荐

    win32_list.rar_win32_win32 list

    "Win32"通常指的是32位版本的Windows API,尽管现在也涵盖了64位版本,它仍然是Windows系统的核心部分。"Win32_list.rar_win32_win32 list"这个标题和描述可能是指一个包含有关Win32 API函数或组件的列表资源。 Win...

    CreatBox_vs19的win窗口_Win32API_nameadi_win32界面_

    总之,"CreatBox_vs19的win窗口_Win32API_nameadi_win32界面_"描述的是使用Visual Studio 2019和Win32 API创建一个具有特定名称的窗口界面的过程。通过熟练掌握这些API和原理,开发者能够构建出功能丰富的Windows...

    jclasslib_win64_5_3_2.rar

    在下载的压缩包`jclasslib_win64_5_3_2.rar`中,包含了一个名为`jclasslib_win64_5_3_2.exe`的可执行文件,这是JClassLib的安装程序。安装后,用户可以在Windows 64位环境下启动该工具,开始探索和分析Java Class...

    jclasslib_win64_5_2_1.rar

    《jclasslib_win64_5_2_1:Java字节码查看神器》 在IT行业中,开发者们经常需要处理各种代码,其中Java作为一款广泛应用的编程语言,其字节码的理解与分析显得尤为重要。jclasslib_win64_5_2_1是一款专为Windows 64...

    Win32常量查看器

    《Win32常量查看器:深入理解和应用》 在Windows操作系统编程中,Win32 API(应用程序接口)是开发者的重要工具,它提供了丰富的函数、结构体和常量供程序调用。为了方便开发者快速查询和理解这些常量,出现了“Win...

    jclasslib_win64.rar

    标题中的“jclasslib_win64.rar”表明这是一个针对64位Windows系统的jclasslib版本,其压缩包内包含的“jclasslib_win64_4_3.exe”是该工具的安装程序,用户只需简单安装即可使用。 jclasslib的主要功能在于反编译...

    WIN32API编程祥解.rar_API_WINDOWS 编程_Win32 API_win32api programming_w

    Win32 API(Application Programming Interface)是一组函数、常量、数据类型和宏,它们允许程序员访问Windows操作系统提供的服务。下面将对这个主题进行深入探讨。 一、API的基础 API是操作系统与应用程序之间的...

    pythonWin_win32all-163.7z

    2. **win32con**:包含了大量的常量定义,这些常量对应于Windows API中的各种标志和消息,使得编写代码时能够更直观地理解其含义。 3. **win32event**:这个模块提供了事件处理机制,可以用于线程同步和进程间通信...

    VC_win32.zip_VC++ WIN32 sdk_vc 教程

    1. **API (Application Programming Interface)**:API是一组预定义的函数、类、对象和常量,它们允许程序员访问操作系统或库的功能。在Windows环境下,API主要通过函数调用来实现各种操作,如窗口创建、消息处理等...

    jclasslib_win32_5_2_1.exe + jclasslib_win64_5_2_1.exe

    在解压后的文件列表中,"jclasslib_win32_5.2.1.exe"和"jclasslib_win64_5.2.1.exe"分别对应32位和64位的可执行程序,用户可以根据自己的系统需求选择合适的版本进行安装和使用。通过这款工具,开发者能够深入理解...

    VLC-Qt_1.1.0_win32_mingw.7z

    VLC-Qt_1.1.0_win32_mingw.7z 是一个针对Windows 32位系统的压缩包,包含的是VLC-Qt 1.1.0版本的库和相关组件。VLC-Qt是开源软件,它巧妙地融合了流行的Qt应用程序框架与著名的libVLC多媒体播放引擎,旨在为开发者...

    x86_64-8.1.0-win32-seh-rt_v6-rev0.zip

    标题 "x86_64-8.1.0-win32-seh-rt_v6-rev0.zip" 暗示的是一个针对x86_64架构的MinGW-w64工具链的发行版,版本号为8.1.0,用于在Windows 64位操作系统上编译C和C++源代码。这个压缩包是专门设计来生成64位Windows可...

    jclasslib_win64_5_3.zip

    在标题"jclasslib_win64_5_3.zip"中,我们可以看到这是针对64位Windows系统的版本,版本号为5.3,而描述中提及的“亲测可用”,意味着这个软件已经过验证,可以在相应的系统环境下顺利运行。作为一个字节码阅读器,...

    C__win32_API编程讲解

    在C#编程中,Win32 API是Windows操作系统的核心组件,提供了大量的系统级功能,而.NET框架并未涵盖所有的Win32 API。C#程序员在需要使用这些未被托管的API时,就需要借助于平台调用(P/Invoke)技术。P/Invoke允许C#...

    几百个常用的 API 函数的简介.rar_MFC_VC api_VC API_Win32API_win32

    在编程领域,API(Application Programming Interface)是一组预先定义的函数、类、对象和常量,它们为开发者提供了操作系统或库的功能,使程序设计更为高效和便捷。在Windows平台上,Win32 API是最核心的系统接口,...

    api32.txt(win32api 常量)

    调用win32api中需要知道的一些常量定义,和错误代码含义.api中经常提起,但用到的时候却找了好久

    forgers-win32-tutorial.rar_win32 API编程

    **Win32 API编程教程** Win32 API(Application Programming Interface)是Microsoft Windows操作系统的核心接口,为开发者提供了访问操作系统服务的途径。这个“forgers-win32-tutorial.rar_win32 API编程”教程是...

    win32api 键盘虚拟键码

    _win32api 键盘虚拟键码 Win32 API 提供了一组虚拟键码,用于识别键盘和鼠标事件。这些虚拟键码是常量值,定义在 Winuser.h 头文件中。下面是这些虚拟键码的详细说明: 鼠标虚拟键码 鼠标虚拟键码用于识别鼠标...

    海康CH_WEB3.0控件开发包V1.1.0_Win64

    "海康CH_WEB3.0控件开发包V1.1.0_Win64"是该公司为开发者提供的一个专用工具,主要用于在Windows 64位操作系统环境下与海康摄像头进行交互和控制。 该开发包的核心是CH_WEB3.0控件,这是一个基于Web技术的组件,...

    apcluster_win32.zip_extraction_fcm

    标题“apcluster_win32.zip_extraction_fcm”表明这是一个与Windows 32位系统相关的APCluster软件包,其中包含了图像提取(Fuzzy C-Means,FCM)的代码或功能。Fuzzy C-Means是一种聚类算法,常用于图像分割、数据...

Global site tag (gtag.js) - Google Analytics