模块dll和lib

Posted 芬乐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模块dll和lib相关的知识,希望对你有一定的参考价值。

一、dll动态链接库

1.dll 没有 main 函数

2.不能直接执行,可以注入exe中让它间接执行。只有把它编译到应用程序中才可以。

3.编写dll

函数前加上  _declspec(dllexport)  void  go(){}   

二、lib(静态链接库)

若要使用 lib,则需要将他放在源文件那个目录下。

1.加载lib有两种方式:

  • 配置中加入lib库
  • 代码:      #pragma comment(lib,“a.lib”) 虽然不加头文件会自动寻找库,但最       好还是加上好一点。

2.作为一个lib理论上都会有一个头文件。

a.h
int add(int b , int c)

a.c(将他编译成lib文件a.lib)
int add(int b , int c){
  return b+c;
}

链接器中要有lib文件他才能自己找到。

3.C语言中没有头文件会自动寻找库

 

以上是关于模块dll和lib的主要内容,如果未能解决你的问题,请参考以下文章

[解决异常] 未经处理的异常 "无法加载 DLL“lib/xxx.dll”: 找不到指定的模块"

无法为模块 XML::LibXML 加载“C:/strawberry/perl/site/lib/auto/XML/LibXML/LibXML.dll”

静态链接库和动态链接库

lib文件和dll文件

C++中lib 和 dll 的区别,生成以及使用详解

DLL 和 LIB 文件 - 啥以及为啥?