Visual Studio引用MySQL庫

創建項目

打開Visual Studio,點擊菜單欄文件,出現下拉菜單,依次選擇新建–>項目
此時彈出新建項目窗口,在左邊依次展開已安裝–>模板–>C/C++,於右邊,Visual Studio 2017選擇空項目,Visual Studio 2015及以下版本選擇Win32控制檯應用程序,在項目名稱輸入框填寫Build,選擇項目存放的位置,最後點擊確定

完成上述步驟後,Visual Studio 2017自動創建項目,而Visual Studio 2015及以下版本彈出Win32應用程序嚮導窗口,點擊下一步,勾選附加選項空項目,去掉安全開發生命週期(SDL)檢查的勾選,最後點擊完成,自動創建項目。

添加源文件

右擊解決方案資源管理器中項目Build源文件文件夾,彈出右鍵菜單,依次選擇添加–>新建項,如下圖所示:
添加源文件
此時彈出添加選項窗口,在左邊依次展開已安裝–>Visual C++,於右邊選擇C++ 文件(.cpp),在名稱輸入框中填寫main.cpp,最後點擊添加

引用外部庫方式

提供絕對路徑和相對路徑,共兩種於Visual Studio開發環境引用外部庫的方式。

以絕對路徑方式引用MySQL庫

這種方法雖然步驟少,操作簡單,不過不具備可移植性(此處所謂的可移植性,是把項目放在另一臺計算機另一個環境上編譯運行)。

右擊解決方案資源管理器的項目Build,如下圖所示:
解決方案資源管理器中項目的右鍵菜單
在彈出菜單最下面,選擇屬性,彈出項目屬性頁,在左邊依次展開屬性配置–>C/C++,選中常規,於右邊的附加包含目錄填寫MySQL解壓後根目錄的include文件夾路徑。
我的include路徑是E:/Program Files (x86)/mysql-5.7.19-win32/include,如下圖所示:
以絕對路徑方式配置附加包含目錄
再展開左邊鏈接器,點擊常規,在右邊的附加庫目錄填寫MySQL解壓後根目錄的lib文件夾路徑。
我的lib路徑是E:/Program Files (x86)/mysql-5.7.19-win32/lib,如下圖所示:
以絕對路徑方式配置附加庫目錄
最後點擊確定,完成在Visual Studio開發環境以絕對路徑引用MySQL庫的步驟。

以相對路徑的方式引用MySQL庫

此種方法相對於絕對路徑來說步驟多,操作複雜,但具有可移植性,即在另一臺計算機的相同開發環境下不需改動(或者做少許改動)就可以編譯運行。

在Build項目的源代碼目錄中創建include和lib文件夾,接着在lib文件夾中創建mysql文件夾,把位於MySQL根目錄的include文件夾複製到源代碼目錄的include文件夾中,並重命名爲mysql,把MySQL根目錄下lib文件夾中的libmysql.lib文件複製到源代碼目錄的lib/mysql文件夾中。

一般只鏈接libmysql.lib,其他庫暫時不必複製,當需要用到其他庫的時候,再添加至項目源代碼目錄的lib/mysql文件夾。

安裝MySQL之後,我的include和lib文件夾在E:\Program Files (x86)\mysql-5.7.19-win32,如下圖所示:
MySQL根目錄的include和lib文件夾
Visual Studio創建的Build項目位於E:\Microsoft Visual Studio Projects\Build\Build,如下圖所示:
Build項目源代碼目錄的include和lib文件夾
接下來的操作與絕對路徑引用方式相似,打開項目屬性頁,在左邊依次展開屬性配置–>C/C++,點擊常規,於右邊的附加包含目錄填寫include/mysql。如下圖所示:
以相對路徑方式配置附加包含目錄
左邊再展開鏈接器,點擊常規,於右邊的附加庫目錄填寫lib/mysql。如下圖所示:
以相對路徑方式配置附加庫目錄
最後點擊確定,完成在Visual Studio開發環境以相對路徑引用MySQL庫的步驟。

測試配置

完成以上配置之後,在項目的源文件中編寫如下代碼,連接數據庫以驗證環境是否配置正確。

#include <stdio.h>
#include <conio.h>
#include <mysql.h>

#pragma comment(lib,"libmysql.lib")

int main(int argc, char *argv[])
{
	char host[] = "localhost";
	char szDatabase[] = "mysql";	// 已有數據庫名
	char username[] = "root";
	char password[] = "eterfree";	// 管理員密碼
	unsigned int port = 3306;

	MYSQL *conn;
	if ((conn = mysql_init((MYSQL*)0))
		&& (mysql_options(conn, MYSQL_SET_CHARSET_NAME, "gbk")==0)
		&& mysql_real_connect(conn, host, username, password, szDatabase, port, NULL, 0))
		printf("連接數據庫成功!\n");
	else
	{
		printf("連接數據庫失敗!\n");
		mysql_close(conn);
		getch();
		return -1;
	}
	mysql_close(conn);
	getch();
	return 0;
}

如果使用預編譯頭,需要在源文件最前面引用預編譯頭文件。
Visual Studio 2017之前,預編譯頭文件默認名稱爲stdafx.h。

#include "stdafx.h"

Visual Studio 2019的預編譯頭文件默認名稱爲pch.h。

#include "pch.h"

如果開發環境是Visual Studio 2017,需要關閉項目屬性的安全開發生命週期檢查。
進入項目的屬性頁,在左邊展開屬性配置,點擊C/C++,於右邊找到SDL檢查,選擇其選項的否(/sdl-),最後點擊確定

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章