VC下的链接库

2016-02-19 19:02 0 1 收藏

今天图老师小编给大家介绍下VC下的链接库,平时喜欢VC下的链接库的朋友赶紧收藏起来吧!记得点赞哦~

【 tulaoshi.com - 编程语言 】

一、静态链接库

        1.静态链接库的生成方法

        在vc下建立一个新项目,项目类型选择win32 static library,然后在项目中加入.h.cpp.c文件,编译链接后就会生成一个静态链接库.lib文件。

        如果想要取得尽量好的与平台无关性,则在.h文件头加入extern "C",强制编译器以C方法编译.cpp的文件,生成的文件名不会像.cpp那样给函数加上一堆附加信息。这样其他的编译器也可能识别他。但是这种方法只适合没有用到C++重载等特性时才可以使用。

       2.静态链接库的使用

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

       把以上生成的.lib和.h文件加入到工程中去,在project选项中选择setting,然后在link中添加*.lib,表示链接时用到他,在项目文件中加入#include "*.h"即可使用这个静态链接库

二、动态链接库

        1.动态链接库的生成方法

        在vc下建立一个新项目,项目类型选择win32 dynamic link library,然后在项目中添加.h.cpp.c文件,编译链接后就会生成.dll文件。

         也可以在resource files文件夹下生成一个.def文件,文件内容如下:
         LIBRARY            *.dll
         EXPORTS        
                                     dll中的函数名
         这个def文件在编译后会生成.lib文件,他是用于解析dll中函数用的。

        2.动态链接库的使用方法一

        把.lib、.dll、.h三个文件都放到工程中去,在工程文件中加入#include "*.h"文件,选择project的setting选项,然后在link中加入.lib文件,即可使用该库。

        3.动态链接库的使用方法二

       把.dll、.h三个文件都放到工程中去,在工程文件中加入#include windows.h,做一个函数指针和一个handle,函数指针指向你要用的,handle类型为HMODULE,如示:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

    typedef void (*PFN)();
    HMODULE hdll = ::LoadLibrary("mydll.dll");
    PFN pfn = (PFN)::GetProcAddress(hdll,"helloword");
    (*pfn)();
    ::FreeLibrary(hdll);       这种方法不用在setting的link中加入lib。

来源:https://www.tulaoshi.com/n/20160219/1619891.html

延伸阅读
标签: Delphi
  10.3.2.2 服务器程序的编写 服务器程序必须包含对 DLL 的调用代码,如: function GetGlobalMem: THandle; far; external 'c:\dlls\glbmem'; 通过调用该函数,服务器可以获得全局内存块的句柄。 在写入数据前,服务器必须锁定全局内存,以避免在写入过程中 Windows 移动该内存块的位置。 函数 Gl...
10.1 Windows的动态链接库原理 动态链接库(DLLs)是从C语言函数库和Pascal库单元的概念发展而来的。所有的C语言标准库函数都存放在某一函数库中,同时用户也可以用LIB程序创建自己的函数库。在链接应用程序的过程中,链接器从库文件中拷贝程序调用的函数代码,并把这些函数代码添加到可执行文件中。这种方法同只把函数储存在已编译的...
标签: Delphi
  10.1 Windows 的动态链接库原理 动态链接库 (DLLs) 是从 C 语言函数库和 Pascal 库单元的概念发展而来的。所有的 C 语言标准库函数都存放在某一函数库中,同时用户也可以用 LIB 程序创建自己的函数库。在链接应用程序的过程中,链接器从库文件中拷贝程序调用的函数代码,并把这些函数代码添加到可执行文件中。这种方法同只...
1.关于文章的获取 许多读者发来e-mail询问本系列文章的相关事宜,如: (1) 是否已出版? (2) 哪里可以下载打包版? (3) 哪里可以下载笔者的其它文章? 还有一些读者对日前笔者在天极网发表的《C语言嵌入式系统编程修炼之道》非常喜爱,给予了热情洋溢的赞扬,询问笔者能否继续创作嵌入式编程方面的文章。 ...
动态链接库(DLL,即 Dynamic-Link Library)是可执行的模块,但它没有自己的堆栈,必须在调用动态链接库函数的程序环境下运行。动态链接库不仅可以作为一个运行模块,包括函数代码,而且可以包含程序以外的任何数据或资源(位图、图标等等)。动态链接库就是给应用程序提供函数或者资源。 动态链接与静态链接是相对立的。静态链接...

经验教程

196

收藏

88
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部