#define WIN32_LEAN_AND_MEAN 的作用

今天看了用mysql的庫+vc連接數據庫,結果我用mfc application嚮導建立一個工程,然後添加#include "mysql.h"(已經設置好了環境),編譯出現了一大堆錯誤,如下
Compiling...
StdAfx.cpp
c:\mysql\include\mysql_com.h(116) : error C2146: syntax error : missing ';' before identifier 'fd'
c:\mysql\include\mysql_com.h(116) : error C2501: 'SOCKET' : missing storage-class or type specifiers
c:\mysql\include\mysql_com.h(116) : error C2501: 'fd' : missing storage-class or type specifiers
c:\mysql\include\mysql_com.h(180) : error C2065: 'SOCKET' : undeclared identifier
c:\mysql\include\mysql_com.h(180) : error C2146: syntax error : missing ')' before identifier 's'
c:\mysql\include\mysql_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 。
   答案很簡單,因爲我要包含儘量精簡的內容,包含了這一句編譯的時候明顯快多了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章