模块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.hint add(int b , int c)

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

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

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

时间: 2024-08-10 20:31:52

模块dll和lib的相关文章

VS2008下WinRar源码生成dll和 lib总结

WinRar官方提供了源码(http://www.rarlab.com/rar_add.htm):如果自己想要修改里面的内容就要重新生成DLL和LIB,我在网上找了很多资料都没有说得很清楚.花一两天的时间才把他生成成功.网上的资料都给了一些误导,所以改了很久才完成.现在给出正确的步骤,给这方面的学习者提供一下思路. )建立一个空的win32 dll工程2)把.hpp和.cpp都添加到工程里3)从工程中移除不是删除arccmt.cpp.beosea.cpp.coder.cpp.model.cpp.

创建SQLite的DLL和LIB

下载源码包两个: sqlite-dll-win32-x86-3081101.zip,里面提供了导出sqlite3的函数的文件sqlite3.def 主要用于生成LIB文件,确定链接使用 sqlite-preprocessed-3081101.zip,提供了源码文件,但是删除shell.c和tclsqlite3.c文件 1.新建win32控制台程序,名称sqlite3 2.选择生成DLL 3.解压压缩包,将sqlite-preprocessed-3081101的文件复制到工程文件夹下(除了shel

dll和lib(包括静态链接库和与dll同时生成的lib)

转:http://blog.csdn.net/galaxy_li/article/details/7411956 1:神马是Dll和Lib,神马是静态链接和动态链接 大家都懂的,DLL就是动态链接库,LIB是静态链接库.DLL其实就是EXE,只不过没main. 动态链接是相对于静态链接而言的.所谓静态链接就是把函数或过程直接链接到可执行文件中,成为可执行程序中的一部分,当多个程序调用同样的函数时,内存里就会有这个函数的多个拷贝,浪费内存资源.而动态链接则是提供了一个函数的描述信息给可执行文件(并

WIndows下编译libexif-0.6.21,生成VS下可用的dll和lib

1.下载libexif-0.6.21.zip 下载地址是http://sourceforge.net/projects/libexif/files/libexif/0.6.21/ 2.解压libexif-0.6.21.zip 我解压到了d:\opensources\下 3.安装Mingw 下载地址是http://www.mingw.org/ 点击右上角的Download Installer 记得安装Msys 我的安装路径是:C:\MinGW 下面依次有如下文件夹: bin include lib

VS2010 C++环境下DLL和LIB文件目录及名称修改

DLL工程,Debug版本下输出文件由basetool.dll basetool.lib 改为basetoolD.dll basetoold.lib 需设置: 1.配置属性-常规-目标文件名 $(ProjectName) 加d 2.配置属性-连接器-常规-输出问件 由 加d 3.配置属性-连接器-高级-导入库,设置文件名$(OutDir)$ProjectName)d.lib 4.如果有导出文件,.def文件中也一定要修改导出库的名字 LIBRARY      "BaseTool" 变为

由动态库文件dll生成lib库文件

本文基于OpenBlas的编译和安装.来说明怎样从一个dll文件生成lib库文件. 參考OpenBlas的说明"Howto generate import library for MingW",和MinGW的说明HOWTO Create an ImportLibrary for a DLL using MinGW,学习怎样生成lib库.当中OpenBlas的说明讲的是怎样使用Visual studio的lib.exe工具从dll生成lib文件,而MinGW讲的是怎样把一个windows

加载dll、lib库

2.是关于如何加载dll或lib库的.可以看这篇bog   Qt调用dll中的功能函数点击打开链接 **************************************************************************************************************************************************** 声明: 事先我已经自己动手写了一个简单的dll文件(myDLL.dll),C版接口的.并且用我前两篇有

DLL和LIB的一些知识点(网上搜集)

关于lib和dll的区别如下:(1)lib是编译时用到的,dll是运行时用到的.如果要完成源代码的编译,只需要lib:如果要使动态链接的程序运行起来,只需要dll.(2)如果有dll文件,那么lib一般是一些索引信息,记录了dll中函数的入口和位置,dll中是函数的具体内容:如果只有lib文件,那么这个lib文件是静态编译出来的,索引和实现都在其中.使用静态编译的lib文件,在运行程序时不需要再挂动态库,缺点是导致应用程序比较大,而且失去了动态库的灵活性,发布新版本时要发布新的应用程序才行.(3

msvc下从dll文件创建lib

1.进入msvc命令控制台. 2.生成.def文件 通过pexports或微软编译环境自带的dumpbin.exe导出DLL对应的def文件 方法一: pexports .dll > .def 方法二: dumpbin /exports .dll > .def 其中***代表你的dll的文件名以及要生成的def的文件名. 我推荐使用pexports,因为它导出的def是标准的def格式,可在http://sourceforge.net/projects/mingw/files/MinGW/Ex