c++ - windows 动态库加载
大家讲道理
大家讲道理 2017-04-17 15:18:22
[C++讨论组]

windows

    静态库是.lib    .h
    动态库是.lib .dll    .h
    
    静态库的.lib 比动态库的.lib 大很多,静态库.lib中已经有代码在里面了,动态库.lib就只有符号链接到.dll。
    

库的加载方式:

静态库:
    1. 在配置属性中添加  XX.lib  和  .lib 的路径, 代码中包含 .h 。就可以了
    2. 在程序中加上pragmacomment(lib, "lib路径"),代码中包含 .h 。
动态库:
    隐试加载:
        1. 在配置属性中添加  XX.lib 和 .lib的路径就可以了,代码中包含 .h 。
        2. 在程序中加上pragmacomment(lib, "lib路径"),代码中包含 .h 
    显示加载:
        1. 只需要.h  和 .dll  。使用函数调用的方式获得函数入口地址

我的问题:

    1 上面的理解有没有错误的地方?  因为网上看的多,方式多,我就乱了,最后乱放                           自己都搞不清楚了
    2  动态库的显示加载 .lib 不需要吗?
    3  有好的链接说明这个吗? 我需要确定的方式,不然就乱调试容易放错位置
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(2)
黄舟

显式加载不需要.lib,这个还跟你的链接方式有关,静态链接以后,发布时.dll都不需要了。具体参考书<programming windows>里面讲得很详细。

伊谢尔伦

动态库的加载分为静态加载和动态加载:
静态加载: 即你提到的编译时添加lib链接, 代码保护头文件。 另外,发布和运行时还是需要dll的
动态加载: 不需要头文件和lib文件,只需要dll, 通过LoadLibrary和GetProcAddress找到相应函数指针, 当然前提是你知道某个dll中导出了那些函数, 具体可以google下相关内容

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号