C++动态链接库:创建客户端应用
作者:三味书屋 来源:原创 2021/12/17 10:02:32

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)"


称      呼:
联系方式:
您的评论:
技术支持:l.w.dong@qq.com www.luweidong.cn
广州市   wx:lwdred
Copyright © 2014 三味书屋 All Rights Reserved
技术支持:l.w.dong@qq.com  sitemap xml  sitemap html

粤公网安备44010602011869号

粤ICP备13031080号-1