1、创建项目MathClient
2、附加动态链接库的头文件
a、右键项目打开项目属性
b、C/C++ 常规 附加包含目录
c、添加动态链接库MathLibrary.h所在目录
动态链接库:MathLibrary.h头文件所在目录如图
也可以用相对路径类似于:..\..\MathLibrary\MathLibrary
3、主文件代码
#include <iostream>
using namespace std;
#include "MathLibrary.h"
int main()
{
// Initialize a Fibonacci relation sequence.
fibonacci_init(1, 1);
// Write out the sequence values until overflow.
do {
std::cout << fibonacci_index() << ": "
<< fibonacci_current() << std::endl;
} while (fibonacci_next());
// Report count of values written before overflow.
std::cout << fibonacci_index() + 1 <<
" Fibonacci sequence values fit in an " <<
"unsigned 64-bit integer." << std::endl;
}
此代码可进行编译,但不能链接。 如果现在生成客户端应用,则错误列表会显示几个 LNK2019 错误。
这是因为项目有依赖项而且尚未告诉链接器如何查找 MathLibrary.lib 文件
此时可以直接复制MathLibrary.lib 文件,也可以设置项目中的“附加库目录” 路径
4、设置附加依赖项
a、右键项目打开项目属性
b、链接器 输入 附加依赖项
c、添加MathLibrary.lib

5、设置链接器附加库目录
a、右键项目打开项目属性
b、链接器 常规 附加库目录
c、添加MathLibrary.lib目录所在地
MathLibrary.lib目录所在地
由于在Debug模式下,MathLibrary.lib会在Debug文件夹中。在Release模式下,MathLibrary.lib会在Release文件夹中
此时可以使用 $(IntDir) 宏,这样无论创建的是哪种版本,链接器都可找到 DLL。
相对路径类似于:..\..\MathLibrary\$(IntDir)
6、在生成后事件中复制 DLL
此时编译运行会提示找不到MathLibrary.dll文件
可以直接将此文件复制到根目录下,也可以设置命令

在生成事件 命令行中 输入复制命令
xcopy /y /d "C:\Users\Administrator\Desktop\MathLibrary\$(IntDir)MathLibrary.dll" "$(OutDir)"