VS下C语言静态链接库和动态链接库

news/2025/3/6 19:54:08/文章来源:https://www.cnblogs.com/dingtongya/p/18756291

1.静态链接库的创建,创建的时候比较简单,不需要导出什么的

2.静态链接库的使用

1.通过配置vs(配置三项,头文件路径,lib文件目录和lib文件名称)

    •   添加头文件路径

      •   右键主项目 → 属性 → C/C++ → 附加包含目录,添加静态库头文件所在目录(如 ../mylib
         
    •   链接库文件

      •   在 属性 → 链接器 → 常规 → 附加库目录 中添加 .lib 文件的路径
         
      •   在 链接器 → 输入 → 附加依赖项 中输入库文件名(如 mylib.lib
         
    •   包含头文件并调用函数

 2.代码指定

    #pragma comment(lib, "mylib.lib")  // 相对路径或绝对路径
    #include "mylib.h"

  3.通过项目引用(同一解决方案)

    •   若静态库和主项目在同一个解决方案中,右键主项目 → 添加 → 引用,勾选静态库项目。VS 会自动处理依赖关系和链接

 

 

动态链接库


/**动态链接库需要导出声明
*/
#pragma once#define E_C extern "C"//c语言风格
#define D_E _declspec(dllexport)//导出E_C D_E int sub(int a, int b);

 

 显示引用(不需要头文件和lib文件)

#include <iostream>
#include "StaticLib1.h"
#include <Windows.h>
typedef int (*pSub)(int a, int b);//函数指针类型
int main()
{HMODULE mydll =  LoadLibrary(L"Dll1");//加载库if (mydll == NULL) {return NULL;}pSub sub = (pSub)GetProcAddress(mydll,"sub");//加载函数int ss = sub(3,2);//使用int a = add(2,5);std::cout << "Hello World!\n";
}

 隐式调用(需要头文件(.h)、导入库(.lib)和DLL文件(.dll))

如果没有.h文件 可以手动申明 导入函数extern "C" __declspec(dllimport) int Add(int a, int b);

  包含头文件,然后指定lib路径,dll要么放程序当前目录要么环境变量路径里.

    #pragma comment(lib, "mylib.lib")  // 相对路径或绝对路径
    #include "mylib.h"

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/894780.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言小记

int a =10; int b=3; int c= pow(10,3); //表示10的三次方unsigned 表示不用补码表示 //数字的输入,%d 包括 char,short,int%u unsigned%ld long long%lu unsigned long long输入 float 是 %f double 是 %lf shuchu dou shi %f保留小数的话是大于5才入,小于等于5舍去强…

系统流程图联系

练习题一:图书馆借阅管理系统流程图绘制 背景说明:在学校图书馆借阅管理系统中,学生借阅图书需要经过一系列流程。首先,学生携带校园卡前往借阅处,工作人员通过刷卡设备读取学生信息,系统验证学生身份是否有效。若身份无效,系统提示原因(如校园卡过期、欠费等)。若身份…

推荐4本专著《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》书,非常感谢

4本书推荐《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》由清华大学出版社资深编辑赵佳霓老师策划编辑的新书《AI芯片开发核心技术详解》已经出版,京东、淘宝天猫、当当等网上,相应陆陆续续可以购买。该…

SAS 9.4软件下载与安装教程

1、安装包 扫描下方二维码关注「软知社」,后台回复【043】三位数字即可免费获取分享链接,无广告拒绝套路;2、安装教程双击setup.exe安装,弹窗安装对话框简体中文,点击确定默认选择,点击下一步指定SAS安装主目录,选择C盘之外磁盘,点击下一步选择第二个,安装SAS Foundat…

MyBatis与其使用方法讲解

ORM在讲解Mybatis之前,我们需了解一个概念ORM(Object-Relational Mapping)对象关系映射,其是数据库与Java对象进行映射的一个技术.通过使用ORM,我们可以不用编写负责的Sql语句,而是通过操作对象来实现增删改查操作缺优分析优点提高开发效率,减少代码的重复性和维护成本 增加代码…

系统流程图

1.图书馆借阅管理系统流程图: 背景说明:在学校图书馆借阅管理系统中,学生借阅图书需要经过一系列流程。首先,学生携带校园卡前往借阅处,工作人员通过刷卡设备读取学生信息,系统验证学生身份是否有效。若身份无效,系统提示原因(如校园卡过期、欠费等)。若身份有效,学生…