链接错误:nafxcwd.lib(dcprev.obj) : error LNK2001: unresolved external symbol __mbctyp

iyranly 2007-10-22 07:45:28
我写了一个程序,原来是Use MFC in a Share DLL ,但是最后程序在没有VC的机器上运行不了,我把它改成静态链接时出现以下错误:
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fclose already defined in libcmtd.lib(fclose.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fflush already defined in libcmtd.lib(fflush.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _free already defined in libcmtd.lib(dbgheap.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _malloc already defined in libcmtd.lib(dbgheap.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _floor already defined in libcmtd.lib(floor.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _calloc already defined in libcmtd.lib(dbgheap.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: __mbsnbcpy already defined in libcmtd.lib(mbsnbcpy.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _sprintf already defined in libcmtd.lib(sprintf.obj)
。。。29errors


我在Setting中Ignor掉libcmtd.lib后,出现如下11处错误,,,

Linking...
Creating library Debug/Interface.lib and object Debug/Interface.exp
nafxcwd.lib(dcprev.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcwd.lib(oledlgs1.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcwd.lib(olelink.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcwd.lib(dcmeta.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcwd.lib(timecore.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcwd.lib(apphelp.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcwd.lib(filelist.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcwd.lib(viewedit.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcwd.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argv
nafxcwd.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argc
Debug/Interface.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.

Interface.exe - 11 error(s), 0 warning(s)


请高手指教,什么原因。
...全文
2430 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ofeliaxss 2010-10-19
  • 打赏
  • 举报
回复
你好!我和你遇到一样的错误。
我看了你们说的以后还是不太明白到底要怎么解决这个问题……
“将我电脑上的MFC42.dll拷贝到目标机器的system32里面”?这是什么意思。
我电脑安装了VC++6.0.
这个问题烦恼了我一个下午了,还请帮忙!谢谢!
iyranly 2007-10-23
  • 打赏
  • 举报
回复
谢谢楼上二位,问题我已经解决了!我还是把它设置为动态的,把需要的dll打包放在目标机器的system32下面。开始的时候出来无法定位序数...于MFC42.dll,可能是dll版本不对(那个是我在dll.com上面下载的,估计他们没有更新),然后我将我电脑上的MFC42.dll拷贝到目标机器的system32里面,运行,就ok了
凤矶 2007-10-23
  • 打赏
  • 举报
回复
改回去,只在工程选项去掉 /D "_AFXDLL"
shanhqk 2007-10-22
  • 打赏
  • 举报
回复
如果程序使用了MFC类库等信息,在一个没有安装vc环境的计算机上运行,如果不出错,那证明操作系统肯定有
问题了,所以呀,这个很正常,需要把vc中使用的dll文件拷贝到system32下,或者设置在环境变量中,也
可以在程序的目录中,至于说缺什么DLL,需要什么DLL,可以使用SKY++工具看看

16,547

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧