小白菜系列之——动态库的使用

举报
小糖饼最甜呀 发表于 2022/03/27 23:18:23 2022/03/27
【摘要】 1. 创建普通hello world程序1)新建一个Demo项目,如下图所示:2)创建源文件main.cpp,写一个输出“Hello world”的程序代码,如下图:3)编译并运行,成功打印“hello world”,结果如下:2. 使用动态库方式    修改上述程序,使用动态库方式,将hello world成功打印2.1 新建一个类型为动态库的空项目1)在解决方案上点击右键,弹出右键菜单,...

1. 创建普通hello world程序

1)新建一个Demo项目,如下图所示:

2)创建源文件main.cpp,写一个输出“Hello world”的程序代码,如下图:

3)编译并运行,成功打印“hello world”,结果如下:

2. 使用动态库方式

    修改上述程序,使用动态库方式,将hello world成功打印

2.1 新建一个类型为动态库的空项目

1)在解决方案上点击右键,弹出右键菜单,选择【添加】--》【新建项目】,如下图:

2)新建DemoDll项目,如下图,点击【确定】按钮,如下图:

3)继续点击【下一步】按钮,如下图:

    这里必须点击【下一步】按钮,为了后续修改程序类型。

4)修改设置,点击【完成】按钮,如下图:

    修改内容:

  • 选择 “应用程序类型”为“DLL“类型;
  • 勾选“空项目“;

5)创建DemoDLL项目成功。如下图:

2.2 动态库编写代码实现打印

1DemoDll项目新建dll.cpp文件,如下图:、

    在dll.cpp文件中编写输出函数,如下图:

2DemoDll项目新建dllGlobal.h文件,如下图:

    在dllGlobal.h文件中编写输出函数,如下图:

3)编译后,编译通过,且生成路径下有libdll,如下图:

2.3 Demo项目加载DemoDll

1)因为DemoDemoDll是两个项目,在本地为两个不同的路径,需要先添加依赖路径:

右键项目属性,修改【VC++目录】--》编辑【包含目录】,添加DemoDll路径,如下图:

新建包含目录,点击【确定】,如下图:

包含路径添加成功,如下图:

2)此时可以正常添加printInfo()函数,但无法编译通过。需要添加依赖的lib文件与其路径,如下图:

添加DemoDll.lib文件名称,如下图:

在VC++目录中,添加依赖的相对路径,如下图:

2.4 编译并运行

3. 总结

使用动态库的注意事项:

1. 需要添加_declspec(dllexport)的修饰符,用于导出;

2. 添加包含路径,用于头文件引入;

3. 添加依赖的lib文件,以及依赖的库目录;

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。