C++ 知道.lib是静态的还是导入的

C++ 知道.lib是静态的还是导入的,c++,c,windows,dll,C++,C,Windows,Dll,我用C代码编译了.lib文件。我如何知道在运行时是需要这个自包含的静态库还是只需要一个导入库和DLL?是否缺少一些dumpbin选项?使用lib命令。如果它是静态的,lib将显示其中的一堆.obj文件。如果这是不可能的 lib /list foo.lib 我会的 另见: 查看其附带的头文件,如果该函数使用\uu declspec(dllimport)进行“修饰”,则表明它是一个导入库。或者查找附带的.def文件,该文件还告诉您它是一个导入库。奇怪的问题。如果你没有DLL,那么你只能祈祷了。通常

我用C代码编译了
.lib
文件。我如何知道在运行时是需要这个自包含的静态库还是只需要一个导入库和DLL?是否缺少一些
dumpbin
选项?

使用lib命令。如果它是静态的,lib将显示其中的一堆.obj文件。如果这是不可能的

lib /list foo.lib
我会的

另见:


查看其附带的头文件,如果该函数使用
\uu declspec(dllimport)
进行“修饰”,则表明它是一个导入库。或者查找附带的.def文件,该文件还告诉您它是一个导入库。

奇怪的问题。如果你没有DLL,那么你只能祈祷了。通常你会阅读文档。如果您没有文档并且不知道.lib的出处,那么您应该三思而后行。遗憾的是,许多库都提供了“入门”或“自述”文件,这些文件已经过时,并且有些神秘的隐藏选项可以配置它是构建静态还是动态。当它甚至不是我想要的库,而是我想要的库所需要的库时,情况会变得更糟。您能建议给
lib
哪个选项来执行此操作吗?我无法从它的声音中理解doc@zaharpopov自Windows 8.1发布以来,MSDN文档已经过修改。请检查。@user31389,您应该建议将其作为一个单独的答案,以便引起更多的注意。似乎也有类似的方法。用7zip打开lib文件。如果是imort库,它将包含*.dll文件。否则,它将包含*.obj文件,可能在一个文件夹中。在我看来,您的答案是更好的。谢谢,我会适应你的方法。以前,我的做法略有不同:但是您的
lib
方法是更好的方法。