vs2012生成动态库的时候,为什么不能生成lib文件

如题所述

原因可能有三个:

1)在Settings->Link中的General选项页中,选中了“Doesn't produce.LIB”复选框。

2)整个动态链接库中没有导出的函数或类。

3)所有导出函数的实现均写在在头文件中。

  

  自己检测一下。 如果实在找不到原因,可以参考如下两种方法


 

1、使用LoadLibrary加载DLL文件,通过GetProcAddress()来获取函数来执行。为了方便,还可以把这两个函数写成一个类。。方便写源码。

2、使用vc工具自己 手动生成 

1、在命令行执行: dumpbin   /exports   yourdll.dll   >   yourdll.def 
2、编辑   yourdll.def   æ–‡ä»¶ï¼Œä½¿ä¹‹æ ¼å¼ä¸Ž.def文件格式一致。比如: 
EXPORTS;               fn1;               fn2; 
3、在命令行执行: 
lib   /def:yourdll.def   /machine:i386   /out:yourdll.lib
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-07-29
原因可能有三个:
1)在Settings->Link中的General选项页中,选中了“Doesn't produce.LIB”复选框。
2)整个动态链接库中没有导出的函数或类。
3)所有导出函数的实现均写在在头文件中。

自己检测一下。 如果实在找不到原因,可以参考如下两种方法

1、使用LoadLibrary加载DLL文件,通过GetProcAddress()来获取函数来执行。为了方便,还可以把这两个函数写成一个类。。方便写源码。
2、使用vc工具自己 手动生成
1、在命令行执行: dumpbin /exports yourdll.dll > yourdll.def
2、编辑 yourdll.def 文件,使之格式与.def文件格式一致。比如:
EXPORTS; fn1; fn2;
3、在命令行执行:
lib /def:yourdll.def /machine:i386 /out:yourdll.lib
相似回答