论坛首页 编程语言技术论坛

DLL Project的def文件中的LIBRARY描述字

浏览 2641 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-05-14   最后修改:2010-05-14
C++
使用Visual Studio DLL Wizard生成的DLL项目,会生成def文件,描述你在DLL中暴露的函数:
LIBRARY	"ANameDLL"
EXPORTS
   MyFunc1 @1
   MyFunc2 @2

这里的LIBRARY这行最好删掉,理由如下:
如果你的DLL项目是某个大项目的子项目,并想在Debug模式下面也有Debug模式,那么必须将上面那行删掉。
否则:Visual Studio会使用它,将所有用到了该项目的exe的依赖关系设置为ANameDLL.dll,不管是Debug模式还是Release模式。
尽管在VCprojects文件指定:MyExeD.exe在link的时候,会link ANameDLLD.lib,并且ANameDLL在Debug模式下面生成了ANameDLLD.lib和ANameDLLD.dll。但是MyExeD.exe在运行的时候,它会去找ANameDLL.dll,而不是ANameDLLD.dll。因此MyExeD.exe 的Debug将运行不了。通过depends工具可以看到这个依赖关系。


背景知识,MSDN关于DLL的描述:
http://msdn.microsoft.com/en-us/library/d91k01sh(v=VS.80).aspx
   发表时间:2010-05-14  
把ANameDLLD.dll改个名就得了呗。
0 请登录后投票
   发表时间:2010-05-14  
ray_linn 写道
把ANameDLLD.dll改个名就得了呗。

改名字能够运行起来,但是如果把那行删掉,不需要改名字,一劳永逸。
0 请登录后投票
   发表时间:2010-05-17  
JavaFans 写道
ray_linn 写道
把ANameDLLD.dll改个名就得了呗。

改名字能够运行起来,但是如果把那行删掉,不需要改名字,一劳永逸。



def本来就不是干这个用的...
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics