刚发完贴,我知道了,我们工程用的是QT
用的QLibrary封装了.

解决方案 »

  1.   

    使用的方式应该是:.h+.lib,这种会把引用关系编译到EXE中,通过工具DEPENDS能看到引用关系。
    你说的loadlibrary,是没有这种引用关系的,是用时加载,不用时啥关系也没有,静态时更看不出关系来。
      

  2.   

    动态加载就是loadlibrary
    静态就是设置连接lib路径吧
      

  3.   

    在VS中其实也一样,dll项目会生成一个lib和dll,lib文件作为编译链接信息在引用这个dll的另一些项目中需要在项目属性(附加依赖项)或者通过代码引用进来,这样就可以编译通过,而发布的时候,值需要exe+dll文件,lib文件是不需要的!值得注意的是,这里提到的lib文件跟静态连接库lib文件不是一个东西
      

  4.   

    静态的话,使用相应的 .lib 和 .h 文件就好了动态的话只需要 .dll 就 OK 了
      

  5.   


    在补充几点吧:
    动态链接库的加载方式分为隐式加载 和 显示加载。显示加载就是由程序在运行过程中通过loadlibrary等API来加载,用完立即freelibrary。而上面我说的就是隐式加载方式,在程序启动的时候直接把dll加载到内存,一切加载完之后主程序才启动。但值得指出的是,隐式加载dll也是通过loadlibrary函数实现的,只不过不是由程序猿自己编码实现罢了!
      

  6.   


    所以,这为仁兄,你的说法是片面的:动态链接采用隐式加载方式也是需要.h和lib文件的,只不过这个lib跟静态连接库lib不是同一层含义上的东西!