关于c++库调用

想知道如果做c++开发,第三方库一般都是以什么形式存在,静态的还是动态的?
Windows下面的Lib和Dll分别和Linux下面的so与a有什么不同,分别都在代码里面如何调用?

我看到有的是在g++编译的时候,用-I加入,有的是用#Progam comment(..)加入,有的是dlopen,
而dlopen貌似是无需引入header文件,在代码中利用open的句柄,用函数指针来实现调用的,如果我引入的库不是函数,而是一个类的话,在不知道类定义声明的前提下如何调用;
貌似所有的c++书中都没有详细的介绍和说明和例子,希望这方面能详细的讲解一下这几种方法,或者提供学习的链接,跪谢

静态 / 动态 第三方库都有可能

lib 对应 a (静态库,代码会 copy 到成品中)
dll 对应 so (动态链接库、共享库)
文件格式不一样,不过 dll 这个后缀改名为 so 后缀其实是没问题的 ……

参考一
[url]http://learn.akae.cn/media/ch20.html[/url]

参考二
[url="http://book.douban.com/subject/3652388/"]《程序员的自我修养》[/url] (书名很 orz 是没错啦 ……)