编译DLL工程后所产生的LIB文件与常见的Win32 Static Library有什么不同?一般地,编译DLL工程后会产生DLL文件和LIB文件。 我看到某篇贴子说:  回复人:Zark(金陵五月) () 信誉:100  2002-11-22 0:58:43  
   你说的那个LIB不是正常情况下的所说的库,而是TYPE  LIBRARY,类型LIB.  不带有任何的实现,你的实现在DLL中.  这句话怎样理解呢?我查MSDN找到的TYPE  LIBRARY的解释好象都是跟ATL有关的,但我的DLL只是Regular  DLL,没用到MFC,不是COM。谁能给我详细解释Regular  DLL里的TYPE  LIBRARY是什么东西?

解决方案 »

  1.   

    类型库不一定是用在COM上,也可以用来定义DLL的输出函数。MFC生成的.LIB 可以用来取代头文件,只要 #import 这个类型库,就可以导入DLL的符号定义。
      

  2.   

    编译DLL工程后所产生的LIB文件只有DLL中一些函数的描述,没有实现的部分。用于静态加载DLL时在LINK中加入。如果动态加载DLL的话是不需要LIB文件的。Win32 Static Library是DLL的一种类型(共三种)。
      

  3.   

    如果我要在EXE里动态加载DLL,并且要EXE里派生(derive)DLL里的导出类时,还需要LIB文件吗?
      

  4.   

    同意,同意,只有一点不同意:Win32 Static Library是DLL的一种类型(共三种)。static library不是DLL的一种类型,从名字上你就可以分得很清楚:
    一个static linked,一个dynamic linked, 完全不是一码事.它们共性是:
    都是库,向CALLER提供服务的.
    TO; Necromancerr(男巫) 
    如果是含有CLASS的类,你是无法动态加载的.因为LoadLibrary()可以,GetProcAddress()也可以,但你如何得到类的地址呢?