动态库dll的调用方式-隐式链接

1.隐式链接(需要.dll,.lib,.h)

隐式链接就是在程序开始执行时就将DLL文件加载到内存当中,而显示链接,是实时加载,程序需要的时候加载,不需要的时候,卸载。

 

Windows程序bin目录包含了可执行文件(.exe) 和 动态链接库(.dlll), 

       lib目录包含了静态库

 

只要没有在程序中显式链接的,都是隐式链接

第一步:将.dll,lib,.h文件放入对应的搜索路径

  其中动态库的搜索路径,记住最重要的两个

  1、项目当前目录(.cpp)目录

  2、path环境变量中的目录

 

  静态库的搜索路径包括:

  1、项目当前目录.cpp目录(项目和解决方案的Debug不行)(也不是解决方案目录)

  2、VC设置中的库目录(Library Directories)

 

  注:如果lib库不放到搜索路径中,也可以在程序中添加:

  #pragma comment(lib,"D:/DLLTest.lib")//若是相对路径,则为项目当前.cpp目录

 

  头文件搜索路径包括:

  1、VC设置中的包含目录(Include Directories)

第二步:一定要在VC设置中的依赖项中添加你用到的库的名字

 

  第一种(对应上面每种搜索路径1):针对数量较少的库

 

    设置.dll,.lib搜索路径:直接将.dll,.lib,.h放入项目当前目录下(即含有项目源文件.cpp的目录)

    设置.h的搜索路径:VC设置中的包含目录(Include Directories)加入你的.h路径

    然后在链接->输入->附加依赖项中加入你要使用的静态库。

 

    这里只添加静态库

    就可以使用DLL中的函数了。

  第二种(对应上面每种搜索路径2):针对数量比较多的库(Opencv)

    Opencv,OSG等开源库的配置

 

    这种方式也是通常开源库的配置方式,Opencv,OSG

    步骤如下:

 

    步骤1.添加DLL的目录

 

           方法1dll目录(通常为bin目录)放入环境变量Path(需要重启)path是搜索动态库的目录

 

    步骤2.添加静态库lib库目录和头文件的目录

 

      在工程中的VC++目录中添加静态库目录和头文件目录

 

    步骤3.添加静态库

 

      在链接->输入->附加依赖项中加入你要使用的静态库(当程序中调用时,会在上述配置的库目录中寻找这个库)

 

      这里只添加静态库,动态库的目录已放入环境变量中,系统会搜索这个路径的,自动加载.dll

 

      如RmwRoadBoundaryStraightLineDLL.lib

 

      然后,在程序中添加头文件 (在上述配置的头文件目录中寻找),就可以使用DLL中的函数了。

 

 

 

 

posted @ 2021-08-11 20:52  磐正  阅读(610)  评论(0)    收藏  举报