#define WIN32_LEAN_AND_MEAN 的作用

今天看了用mysql的库+vc连接数据库,结果我用mfc application向导建立一个project,然后加入#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,里面有个project是不是用 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 。

扫描二维码关注公众号,回复: 5919248 查看本文章

   答案非常easy。由于我要包括尽量精简的内容,包括了这一句编译的时候明显快多了。

猜你喜欢

转载自www.cnblogs.com/xfgnongmin/p/10721777.html