[转]#define WIN32_LEAN_AND_MEAN 的作用

今天看了用mysql的库+vc连接数据库,结果我用mfc application向导建立一个工程,然后添加#include "mysql.h"(已经设置好了环境),编译出现了一大堆错误,如下

Compiling...
StdAfx.cpp
c:mysqlincludemysql_com.h(116) : error C2146: syntax error : missing ';' before identifier 'fd'
c:mysqlincludemysql_com.h(116) : error C2501: 'SOCKET' : missing storage-class or type specifiers
c:mysqlincludemysql_com.h(116) : error C2501: 'fd' : missing storage-class or type specifiers
c:mysqlincludemysql_com.h(180) : error C2065: 'SOCKET' : undeclared identifier
c:mysqlincludemysql_com.h(180) : error C2146: syntax error : missing ')' before identifier 's'
c:mysqlincludemysql_com.h(181) : error C2059: syntax error : ')'
Error executing cl.exe.

网上找了许久,没有找到答案,我就查看了mysql根目录下的examples,里面有个工程是不是用 c++编写的,我调试了一下,居然可以编译,我就想mysql.h这个文件不会有错误,应该是编译时,include 冲突了,我就把stdafx.h那个文件删除掉几行,结果当我把#define WIN32_LEAN_AND_MEAN这几话屏蔽后,就可以编译了,我也试用了 mysql_init((MYSQL*) 0);这个函数没有问题.所以问题就出在define WIN32_LEAN_AND_MEAN这句话.

#define WIN32_LEAN_AND_MEAN,这句的目的是指示编译器不要包含与MFC相关的操作。( 只是一个好的练习——如果你不在使用 MFC) 然后我们包括 dxutil.h 和 ddutil.h,这是两个很有用的头文件。 他们能够使你以一种比通常的DirectX编程更轻松的方式来工作。

为什么要  #define WIN32_LEAN_AND_MEAN 。

答案很简单,因为我要包含尽量精简的内容,包含了这一句编译的时候明显快多了。

转载于:https://www.cnblogs.com/Dageking/p/3521405.html

#define WIN32_LEAN_AND_MEAN 的作用相关推荐

  1. 每日一题(12)—— .h头文件中ifndef/define/endif的作用

     .h头文件中ifndef/define/endif的作用? 分析: 防止头文件被重复包含. #ifndef _TEST_H_ #define _TEST_H_/* test.h */#endif / ...

  2. #ifndef #define #endif的作用

    #ifndef #define #endif的作用 在一个大的软件工程里面,可能会有多个文件同时包含一个头文件.当这些文件编译链接成一个可执行文件时,就会出现大量重定义的错误. 在头文件中实用#ifn ...

  3. #ifndef, #define, #endif的作用

    目录 作用 示例 作用 #ifndef 它是if not define 的简写,是宏定义的一种,实际上确切的说,这应该是预处理功能三种(宏定义.文件包含.条件编译)中的一种--条件编译. 在c语言中, ...

  4. 【C/C++】ifndef/define/endif的作用

    参考资料来源于网上,还未经本人实验证明. 1 作用   防止头文件被重复包含和编译. 头文件重复包含会增大程序大小,重复编译增加编译时间.   解释:#ifndef起到的效果是防止一个源文件多次包含同 ...

  5. #ifndef、#define、#endif作用

    1. 作用 防止头文件被重复引用,防止被重复编译. 2. 简介 #ifndef 它是if not define的简写,是宏定义的一种,确切的说是预处理功能(宏定义.文件包含.条件编译)三种中的一种-- ...

  6. #define 中 \ 的作用

    \ 表示强制换行,而换行后的内容与前一行的内容编译器仍把它看作是同一行. #define后面定义的内容比须在同一行,而有时是为了让程序便于阅读,从中间进行换行,如果没有符号' ',则换行表示 #def ...

  7. #define中的“\”作用

    在C++中,我们在定义#define宏时是要保持在一行的,而有时候定义内容可能不是很美观,影响阅读,而在这时我们就可以使用 " \ " 强制转行,使编译器仍将换行后认为是同一行,增 ...

  8. VC中的宏 (#define) 与预处理 (#if/#ifdef/#pragma) 的使用方法总结。

    C/C++ 预定义宏 例子:C/C++ 预定义宏的取值 C/C++ 预定义宏用途:诊断与调试输出 CRT 的诊断与调试输出:assert, _ASSERT/_ASSERTE, _RPTn/_RPTFn ...

  9. rb c语言,C语言,RB和RBT什么区别啊???这里的typedef 什么作用???

    满意答案 guiyalm4704 2017.01.10 采纳率:58%    等级:12 已帮助:5026人 1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是 ...

最新文章

  1. 基于PU-Learning的恶意URL检测
  2. MySQL主从复制虽好,能完美解决数据库单点问题吗?
  3. Nginx 最全操作总结
  4. J2EE 第二阶段项目之编写代码(六)
  5. 第一个程序,Hello World
  6. lvs和HA的高可用性
  7. C# 子类实例化基类 基类使用不了子类的方法_C#高级编程面试考题
  8. c# webapi返回html,c#-从Web API 2端点返回自定义HTTP状态代码
  9. 大数据学习笔记:ZooKeeper练习
  10. 假Chrome扩展程序“Internet下载管理器”已安装20万次
  11. 笔记:《深入浅出统计学》第十三章:假设检验(显著性检验)
  12. 数据通信与计算机网复习题,数据通信与计算机网络 复习题总.doc
  13. error: field ‘ifru_hwaddr’ has incomplete type
  14. 我有一个还在蹒跚学步的小孩是否应该学习Python?
  15. 手机从哈林子弹节省人力
  16. 2022年全球市场三维测量产品总体规模、主要生产商、主要地区、产品和应用细分研究报告
  17. vite:配置ip访问
  18. 华侨大学教务系统评教脚本----一键评教
  19. iview 表格合并行
  20. 网页聊天窗口的自动输入内容及自动发送

热门文章

  1. memcacheq 服务安装与原理
  2. 何崚谈阿里巴巴前端性能优化最佳实践
  3. Ajax实现在textbox中输入内容,动态从数据库中模糊查询显示到下拉框中
  4. alert在asp.net中如何使用??
  5. 图像相似度计算之哈希值方法OpenCV实现
  6. OpenCV提取轮廓(去掉面积小的轮廓)
  7. 【Qt】ubuntu14.04.5 qt5.6中使用opencv3.4报错:Using GTK+ 2.x and GTK+ 3 in the same process is not supported
  8. docker注册表回传失败 群晖6.2_Glances实时监视群晖运行状况
  9. Linux拷贝数据死机了,Linux系统“死机”时怎么办?
  10. javascript乘法和加法_JavaScript大数相加相乘的实现方法实例