• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

MFC Extension Dll入门级问题,相信做过的人只要一句话就可解决

goodsong 2002-05-16 11:42:14
我将Debug 版 output file name 改成testd.dll后编译出现如下警告:
testd.exp : warning LNK4070: /OUT:test.dll directive in .EXP differs from output filename "Debug/testd.dll"; ignoring directive
然后在testdemod.exe里用的时候就说找不到test.dll
只有将testd.dll改名成test.dll才可用
但我从网上下的例子却是可以用的。
仔细检查终于发现是testd.lib里的Dll文件名仍为test.dll
而网上的例子编译出的*.lib里的却是*d.dll。
我想是编译设置的问题,但找了好久也不知道具体在哪里改。
请问该如何解决上面的问题?
谢谢!
...全文
30 点赞 收藏 26
写回复
26 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
loyee 2002-05-17
1)试一下删除所有工程的临时文件(.ncb;.opt;.aps;DEBUG目录),然后重新编译.

2)修改资源version中的InternalName,OriginalFileName

没有经过验证,你若试了,请告诉结果.
回复
goodsong 2002-05-17
而且例子的Demo里就包含了Dll的头文件(当然仅仅是我的发现),
连link->object/library modules里都没填*d.lib
真不知道在哪些地方设置了。
回复
goodsong 2002-05-17
MFC Extension Dll不需要(微软也不提倡)改DEF
我下的例子也没改DEF,但我的就是有问题,例子就没问题
回复
mousubin 2002-05-17
改了DEF应该可以了的啊,你是否忘了更新lib什么什么的
回复
goodsong 2002-05-17
loyee()别忘了到另一贴领分
回复
goodsong 2002-05-17
结贴。
谢谢!今晚没白熬夜
回复
mousubin 2002-05-17
靠,还看轻我们
回复
mousubin 2002-05-17
刚做了以下,发现这样竟然行了,删除项目列表里的DEF文件
回复
goodsong 2002-05-17
非常感谢两位这么晚了还回答我的问题
我将另开一贴加分,不是看轻了两位,算是交个朋友吧。
回复
goodsong 2002-05-17
to loyee()
改了DEF没问题了。
谢谢!
但我还想知道为什么不改DEF也可以
回复
goodsong 2002-05-17
to mousubin(无情剑客16155843)
是可以这样做,但我就是受不了:
为什么别人的能行我的就是不行?
所以想弄清楚一下。
而且这样比建两个工程要方便一些呀。
回复
loyee 2002-05-17
InternalName,OriginalFileName只是一些文件的静态信息保存在文件的资源头里面.这不是你问题的原因.我想若改了DEF文件还有问题的话,很大可能你应用程序连接了老的.LIB文件.
回复
goodsong 2002-05-17
to loyee()
这样做是可以,thx总算解决了一半
还有一半:我下的例子并没有改def文件,为什么会得出正解的*d.lib和*d.dll?
回复
goodsong 2002-05-17
to loyee()
InternalName,OriginalFileName有什么用?
我下载的例子没有改InternalName,OriginalFileName
和工程缺省的一致,所以不是这里的问题。
回复
mousubin 2002-05-17
如果你只是为了区分版本,为何不建两个工程,让他们的文件公享
回复
loyee 2002-05-17
jiangsheng(蒋晟卧病中)的方法没错.

修改DEF文件中下面一行就没有警告了.而且别的工程中也可以正常连接改名后的DLL.我做了实验是没有什么问题.你最好查一些你testdemod.exe里面连接的Test.lib是否是DLL改名后产生的.

LIBRARY "Testd"
回复
goodsong 2002-05-17
to mousubin(无情剑客16155843)
不对啊。
当把output file name 改成testd.dll后,Project Options里就自动改成了testd.lib,但complie时问题仍然存在。
回复
loyee 2002-05-17
资源version就是在Resource View中的Version 段里面有InternalName,OriginalFileName可以设置.
回复
mousubin 2002-05-17
Link->Project Options里面将test.lib改为testd.lib
回复
goodsong 2002-05-17
不用发了,就是用向导生成的,就改了一下名字
大虾告诉我怎样做才能生成testd.lib和testd.dll并且不出现警告就行了。
而不是缺少的文件名test.lib和test.dll,
因为我想将调试版(debug)和发行版(release)区别开
很简单的问题啊,我说的不清楚吗?
我用的是VC6.0,各位可以试一下,用向导
不用一分钟就可以看到我说的症状了
回复
加载更多回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2002-05-16 11:42
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……