検索

ホームページ  >  に質問  >  本文

c++ - windows 动态库加载

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  有好的链接说明这个吗? 我需要确定的方式,不然就乱调试容易放错位置
大家讲道理大家讲道理2772日前432

全員に返信(2)返信します

  • 黄舟

    黄舟2017-04-17 15:20:22

    明示的な読み込みには .lib は必要ありません。これは、静的リンク後の公開時に .dll は必要ありません。専用の参考書「Programming Windows」で詳しく説明されています。

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 15:20:22

    動的ライブラリのロードは、静的ロードと動的ロードに分けられます。
    静的ロード: つまり、コンパイル中に lib リンクとコード保護ヘッダー ファイルを追加すると述べました。 さらに、パブリッシュおよび実行時にも DLL の動的ロードが必要です。ヘッダー ファイルや lib ファイルは必要ありません。必要なのは、LoadLibrary と GetProcAddress を通じて対応する関数ポインターを見つけることだけです。特定の DLL でどの関数がエクスポートされるかを知りたい場合は、関連するコンテンツを Google で検索してください。

    返事
    0
  • キャンセル返事