简单的创建和使用静态库,动态库及动态库显示调用



主要源于Visual Studio 2008文档,末尾补充动态库的显示调用

 

创建新的静态库项目

1.    文件菜单中,选择新建,然后选择项目…”

2.    项目类型窗格中,选择“Visual C++”下的“Win32”

3.    模板窗格中,选择“Win32控制台应用程序

4.    为项目选择一个名称,如“MathFuncsLib”,并将其输入名称字段。为解决方案选择一个名称,如“StaticLibrary”,并将其输入解决方案名称字段。

5.    确定启动“Win32应用程序向导。在“Win32应用程序向导对话框的概述页中,按下一步

6.    “Win32应用程序向导应用程序设置页中,选择应用程序类型下的静态库

7.    “Win32应用程序向导应用程序设置页中,清除附加选项下的预编译头复选框。

8.    完成创建项目。

向静态库添加类

1.    若要为新类创建头文件,请从项目菜单中选择添加新项…”。将显示添加新项对话框。从类别窗格中,选择“Visual C++”下的代码。从模板窗格中选择头文件(.h)”。为头文件选择一个名称,如“MathFuncsLib.h”,并按添加。将显示一个空白文件。

2.    添加一个名为“MyMathFuncs”的简单类,以执行常见的算术运算,如加、减、乘和除。代码应与以下内容类似:

简单的创建和使用静态库,动态库及动态库显示调用

3.    若要为新类创建源文件,请从项目菜单中选择添加新项…”。将显示添加新项对话框。从类别窗格中,选择“Visual C++”下的代码。从模板窗格中,选择“C++文件(.cpp)”。为源文件选择一个名称,如“MathFuncsLib.cpp”,并按添加。将显示一个空白文件。

4.    在源文件中实现“MyMathFuncs”的功能。代码应与以下内容类似:

简单的创建和使用静态库,动态库及动态库显示调用

5.    若要将项目生成为静态库,请从项目菜单中选择“MathFuncsLib属性…”。在左窗格中,选择配置属性下的常规。在右窗格中,将配置类型更改为静态库(.lib)”。按确定保存更改。

6.    编译该静态库,方法是选择生成菜单中的生成解决方案。这将创建一个可供其他程序使用的静态库。

创建引用静态库的应用程序

1.    若要创建引用并使用刚刚创建的静态库的应用程序,请从文件菜单中选择新建,然后选择项目…”

2.    项目类型窗格中,选择“Visual C++”下的“Win32”

3.    模板窗格中,选择“Win32控制台应用程序

4.    为项目选择一个名称(如“MyExecRefsLib”),并将其键入名称字段。从解决方案旁边的下拉列表中选择添入解决方案。这会将新项目添加到该静态库所属的同一个解决方案中。

5.    确定启动“Win32应用程序向导。在“Win32应用程序向导对话框的概述页中,按下一步

6.    “Win32应用程序向导应用程序设置页中,选择应用程序类型下的控制台应用程序

7.    “Win32应用程序向导应用程序设置页中,清除附加选项下的预编译头

8.    完成创建项目。

在控制台应用程序中使用静态库的功能

1.    创建新的控制台应用程序后,该向导将为您创建一个空程序。源文件的名称与您在前面为项目选择的名称相同。在本示例中,名为“MyExecRefsLib.cpp”

2.    若要使用在静态库中创建的算术例程,必须引用该静态库。为此,请选择项目菜单中的引用…”。在属性页对话框中,展开通用属性节点,并选择引用。然后选择添加新引用…”按钮。

3.    显示添加引用对话框。此对话框列出了所有可以引用的库。项目选项卡列出了当前解决方案中的所有项目,以及它们包含的所有库。在项目选项卡中,选择“MathFuncsLib”。然后选择确定

4.    若要引用静态库的头文件,必须修改包含目录路径。为此,请在属性页对话框中,展开配置属性节点,然后展开“C/C++”节点,并选择常规。在附加包含目录旁边,键入“MathFuncsLib.h”头文件所在位置的路径。

5.    现在,可以在应用程序中使用“MyMathFuncs”类了。使用以下代码替换“MyExecRefsLib.cpp”的内容:

简单的创建和使用静态库,动态库及动态库显示调用

6.    通过从生成菜单中选择生成解决方案,生成可执行文件。

运行应用程序

1.    确保选择“MyExecRefsLib”作为默认项目。在解决方案资源管理器中,选择“MyExecRefsLib”,然后选择项目菜单中的设为启动项目

2.    若要运行项目,请选择调试菜单中的开始执行(不调试)。输出应该与下面的内容类似:

简单的创建和使用静态库,动态库及动态库显示调用

 

 

 

 

 

创建新的动态链接库 (DLL)项目

1.    文件菜单中,选择新建,然后选择项目…”

2.    项目类型窗格中,选择“Visual C++”下的“Win32”

3.    模板窗格中,选择“Win32控制台应用程序

4.    为项目选择一个名称,如“MathFuncsDll”,并将其键入名称字段。为解决方案选择一个名称,如“DynamicLibrary”,并将其键入解决方案名称字段。

5.    单击确定启动 Win32 应用程序向导。在“Win32应用程序向导对话框的概述页中,单击下一步

6.    “Win32应用程序向导中的应用程序设置页中,选择应用程序类型下的“DLL”(如果可用),或者选择控制台应用程序(如果“DLL”不可用)。某些版本的 Visual Studio 不支持通过使用向导创建 DLL项目。您可以稍后对此进行更改,以将项目编译为 DLL

7.    “Win32应用程序向导应用程序设置页中,选择附加选项下的空项目

8.    单击完成创建项目。

向动态链接库添加类

1.    若要为新类创建头文件,请从项目菜单中选择添加新项…”。将显示添加新项对话框。在类别窗格中,选择“Visual C++”下的代码。在模板窗格中选择头文件(.h)”。为头文件选择一个名称,如“MathFuncsDll.h”,并单击添加。将显示一个空白文件。

2.    添加一个名为“MyMathFuncs”的简单类,以执行常见的算术运算,如加、减、乘和除。代码应与以下内容类似:

简单的创建和使用静态库,动态库及动态库显示调用

3.    请注意此代码方法声明中的__declspec(dllexport)修饰符。这些修饰符使 DLL能够导出该方法以供其他应用程序使用。

4.    若要为新类创建源文件,请从项目菜单中选择添加新项…”。将显示添加新项对话框。在类别窗格中,选择“Visual C++”下的代码。在模板窗格中,选择“C++文件(.cpp)”。为源文件选择一个名称,如“MathFuncsDll.cpp”,并单击添加。将显示一个空白文件。

5.    在源文件中实现“MyMathFuncs”的功能。代码应与以下内容类似:

简单的创建和使用静态库,动态库及动态库显示调用

6.    若要将项目生成为 DLL,请从项目菜单中选择“MathFuncsDll,再选择属性…”在左窗格中,选择配置属性下的常规。在右窗格中,将配置类型更改为动态库(.dll)”。单击确定保存更改。

7.    编译该动态链接库,方法是选择生成菜单中的生成解决方案。这样就创建了一个可供其他程序使用的 DLL

创建引用动态链接库的应用程序

1.    若要创建将引用并使用刚创建的动态链接库的应用程序,请从文件菜单中选择新建,然后选择项目...”

2.    项目类型窗格中,选择“Visual C++”下的“Win32”

3.    模板窗格中,选择“Win32控制台应用程序

4.    为项目选择一个名称(如“MyExecRefsDll”),并将其键入名称字段。从解决方案旁边的下拉列表中选择添入解决方案。这会将新项目添加到该动态链接库所属的同一个解决方案中。

5.    单击确定启动“Win32应用程序向导。在“Win32应用程序向导对话框的概述页中,单击下一步

6.    “Win32应用程序向导应用程序设置页中,选择应用程序类型下的控制台应用程序

7.    “Win32应用程序向导应用程序设置页中,清除附加选项下的预编译头复选框。

8.    完成创建项目。

在控制台应用程序中使用类库的功能

1.    创建新的控制台应用程序后,将为您创建一个空程序。源文件的名称与您在前面为项目选择的名称相同。在本示例中,名为“MyExecRefsDll.cpp”

2.    若要使用在动态链接库中创建的算术例程,则必须引用该库。为此,请选择项目菜单中的引用…”。在属性页对话框中展开通用属性节点,选择引用,然后选择添加新引用...”按钮。

3.    显示添加引用对话框。此对话框列出了所有可以引用的库。项目选项卡列出了当前解决方案中的所有项目,以及它们包含的所有库。在项目选项卡中,选择“MathFuncsDll”。然后单击确定

4.    若要引用动态链接库的头文件,必须修改包含目录路径。为此,请在属性页对话框中展开配置属性节点,然后展开“C/C++”节点,并选择常规。在附加包含目录旁边,键入“MathFuncsDll.h”头文件所在位置的路径。

5.    可执行文件仅在运行时加载动态链接库。必须告诉系统在哪里查找“MathFuncsDll.dll”。您可以通过使用PATH环境变量做到这一点。为此,请在属性页对话框中展开配置属性节点,并选择调试。在环境旁边键入以下内容:PATH=<MathFuncsDll.dll文件的路径>,其中 <MathFuncsDll.dll 文件的路径>应替换为“MathFuncsDll.dll”的实际位置。单击确定保存所有更改。

6.    现在,可以在应用程序中使用“MyMathFuncs”类了。使用以下代码替换“MyExecRefsDll.cpp”的内容:

简单的创建和使用静态库,动态库及动态库显示调用

7.    通过从生成菜单中选择生成解决方案,生成可执行文件。

运行应用程序

1.    确保选择“MyExecRefsDll”作为默认项目。在解决方案资源管理器中,选择“MyExecRefsDll”,然后选择项目菜单中的设为启动项目

2.    若要运行项目,请选择调试菜单中的开始执行(不调试)。输出应该与下面的内容类似:

简单的创建和使用静态库,动态库及动态库显示调用



基于上面动态库的显示调用:


.h文件


 简单的创建和使用静态库,动态库及动态库显示调用


 .cpp文件



简单的创建和使用静态库,动态库及动态库显示调用




简单的创建和使用静态库,动态库及动态库显示调用



简单的创建和使用静态库,动态库及动态库显示调用