日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

演练:创建和使用静态库 (C++)

發布時間:2024/6/14 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 演练:创建和使用静态库 (C++) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們將創建的下一個庫類型是靜態庫 (LIB)。 使用靜態庫是重用代碼的一種絕佳方式。 您不必在自己創建的每個程序中重新實現同一例程,而只需對這些例程編寫一次,然后從需要該功能的應用程序引用它們即可。

本演練演示如何完成以下任務:

  • 創建靜態庫項目。

  • 向靜態庫添加類。

  • 創建引用靜態庫的控制臺應用程序。

  • 在應用程序中使用靜態庫的功能。

  • 運行該應用程序。

系統必備


本主題假定您具備 C++ 語言的基礎知識。 如果您是剛開始學習 C++,建議參閱 MSDN Library 中的此教程:第一層:C++ 初學者指南。

創建靜態庫項目
  • 在“文件”菜單中,選擇“新建”,然后選擇“項目”。

  • 在“項目類型”窗格中,選擇“Visual C++”下的“Win32”。

  • 在“模板”窗格中,選擇“Win32 控制臺應用程序”。

  • 為項目選擇一個名稱(例如 MathFuncsLib),并將該名稱輸入“名稱”字段。 為解決方案選擇一個名稱(例如 StaticLibrary),并將該名稱輸入“解決方案名稱”字段。

  • 單擊“確定”啟動 Win32 應用程序向導。 在“Win32 應用程序向導”對話框的“概述”頁中,單擊“下一步”。

  • 在“Win32 應用程序向導”的“應用程序設置”頁中,選擇“應用程序類型”下的“靜態庫”。

  • 在“Win32 應用程序向導”的“應用程序設置”頁中,清除“附加選項”下的“預編譯頭”復選框。

  • 單擊“完成”創建項目。

  • 向靜態庫添加類
  • 若要為新類創建頭文件,請從“項目”菜單中選擇“添加新項”。 將顯示“添加新項”對話框。 從“類別”窗格中,選擇“Visual C++”下的“代碼”。 從“模板”窗格中選擇“頭文件(.h)”。 為頭文件選擇一個名稱(例如 MathFuncsLib.h),然后單擊“添加”。 將顯示一個空白文件。

  • 添加一個名為“MyMathFuncs”的類以執行常見的算術運算,如加、減、乘和除。 為此,請將 MathFuncsLib.h 的內容替換為下面的代碼。

  • // MathFuncsLib.hnamespace MathFuncs {class MyMathFuncs{public:// Returns a + bstatic double Add(double a, double b);// Returns a - bstatic double Subtract(double a, double b);// Returns a * bstatic double Multiply(double a, double b);// Returns a / b// Throws DivideByZeroException if b is 0static double Divide(double a, double b);}; }
  • 若要為新類創建源文件,請從“項目”菜單中選擇“添加新項”。 將顯示“添加新項”對話框。 從“類別”窗格中,選擇“Visual C++”下的“代碼”。 從“模板”窗格中,選擇“C++ 文件(.cpp)”。 為源文件選擇一個名稱(例如 MathFuncsLib.cpp),然后單擊“添加”。 將顯示一個空白文件。

  • 在源文件中實現 MyMathFuncs 的功能。 為此,請將 MathFuncsLib.cpp 的內容替換為下面的代碼。

  • ?

    // MathFuncsLib.cpp // compile with: /c /EHsc // post-build command: lib MathFuncsLib.obj#include "MathFuncsLib.h"#include <stdexcept>using namespace std;namespace MathFuncs {double MyMathFuncs::Add(double a, double b){return a + b;}double MyMathFuncs::Subtract(double a, double b){return a - b;}double MyMathFuncs::Multiply(double a, double b){return a * b;}double MyMathFuncs::Divide(double a, double b){if (b == 0){throw new invalid_argument("b cannot be zero!");}return a / b;} }
  • 若要將項目生成為靜態庫,請從“項目”菜單中選擇“屬性”。 在左窗格中,選擇“配置屬性”下的“常規”。 在右窗格中,將“配置類型”更改為“靜態庫(.lib)”。 單擊“確定”保存更改。

    注意

    如果是從命令行生成,必須分兩個步驟來生成程序。 首先,通過使用帶編譯器選項 /cCl.exe 編譯代碼 (cl /c /EHsc MathFuncsLib.cpp)。 這將創建名為“MathFuncsLib.obj”的對象文件。 有關更多信息,請參見 /c(在不鏈接的情況下進行編譯)。 接著,使用庫管理器 Lib.exe 鏈接代碼 (lib MathFuncsLib.obj)。 這將創建靜態庫“MathFuncsLib.lib”。 有關庫管理器的更多信息,請參見LIB 引用。

  • 編譯該靜態庫,方法是選擇“生成”菜單中的“生成解決方案”。 這將創建一個可供其他程序使用的靜態庫。

  • 創建引用靜態庫的控制臺應用程序
  • 若要創建將引用并使用剛創建的靜態庫的應用程序,請從“文件”菜單中選擇“新建”,然后選擇“項目”。

  • 在“項目類型”窗格中,選擇“Visual C++”下的“Win32”。

  • 在“模板”窗格中,選擇“Win32 控制臺應用程序”。

  • 為項目選擇一個名稱(如 MyExecRefsLib),并將其鍵入“名稱”字段。 在“解決方案”旁邊的下拉列表框中選擇“添入解決方案”。 這會將新項目添加到該靜態庫所屬的同一個解決方案中。

  • 單擊“確定”啟動“Win32 應用程序向導”。 在“Win32 應用程序向導”對話框的“概述”頁中,單擊“下一步”。

  • 在“Win32 應用程序向導”的“應用程序設置”頁中,選擇“應用程序類型”下的“控制臺應用程序”。

  • 在“Win32 應用程序向導”的“應用程序設置”頁中,清除“附加選項”下的“預編譯頭”。

  • 單擊“完成”創建項目。

  • 在應用程序中使用靜態庫的功能
  • 創建控制臺應用程序后,該向導將為您創建一個空程序。 源文件的名稱與您在前面為項目選擇的名稱相同。 在本示例中,名為“MyExecRefsLib.cpp”。

  • 您必須引用所創建的靜態庫才能使用其算術例程。 為此,請在“項目”菜單中選擇“引用”。 在 MyExecRefsLib“屬性頁”對話框中,展開“通用屬性”節點,然后單擊“添加新引用”。 有關“引用”對話框的更多信息,請參見“<Projectname> 屬性頁”對話框 ->“通用屬性”->“框架和引用”。

  • 將顯示“添加引用”對話框。 “項目”選項卡列出了當前解決方案中的各個項目以及可以引用的所有庫。 在“項目”選項卡中,選擇 MathFuncsLib。 單擊“確定”。

  • 若要引用 MathFuncsLib.h 頭文件,必須修改包含目錄路徑。 在 MyExecRefsLib“屬性頁”對話框中,展開“配置屬性”節點,展開“C/C++”節點,然后選擇“常規”。 在“附加包含目錄”屬性值中,鍵入 MathFuncsLib 目錄的路徑或瀏覽至該目錄。

    若要瀏覽至目錄路徑,請在屬性值下拉列表框中單擊“編輯”。 在“附加包含目錄”對話框中的在文本框中選擇一個空行,然后單擊行尾的省略號按鈕(“…”)。在“選擇目錄”對話框中,選擇 MathFuncsLib 目錄,然后單擊“選擇文件夾”保存所做的選擇并關閉對話框。 在“附加包含目錄”對話框中,單擊“確定”。

  • 現在即可在此應用程序中使用 MyMathFuncs 類。 為此,請將 MyExecRefsLib.cpp 的內容替換為下面的代碼。

  • // MyExecRefsLib.cpp // compile with: /EHsc /link MathFuncsLib.lib#include <iostream>#include "MathFuncsLib.h"using namespace std;int main() {double a = 7.4;int b = 99;cout << "a + b = " <<MathFuncs::MyMathFuncs::Add(a, b) << endl;cout << "a - b = " <<MathFuncs::MyMathFuncs::Subtract(a, b) << endl;cout << "a * b = " <<MathFuncs::MyMathFuncs::Multiply(a, b) << endl;cout << "a / b = " <<MathFuncs::MyMathFuncs::Divide(a, b) << endl;return 0; }
  • 通過從“生成”菜單中選擇“生成解決方案”,生成可執行文件。

  • 運行應用程序
  • 確保選擇“MyExecRefsLib”作為默認項目。 在“解決方案資源管理器”中,選擇 MyExecRefsLib,然后從“項目”菜單中選擇“設為啟動項目”。

  • 若要運行項目,請選擇“調試”菜單中的“開始執行(不調試)”。 輸出應該與下面的內容類似:

    a + b = 106.4 a - b = -91.6 a * b = 732.6 a / b = 0.0747475
  • 轉載于:https://www.cnblogs.com/rollenholt/archive/2012/04/14/2447021.html

    總結

    以上是生活随笔為你收集整理的演练:创建和使用静态库 (C++)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。