无法找到动态链接库msvcp80d.dll

时间:2020-12-10 15:52:19
我是在vc6中调用可能是2005中编译的一些库
,在我自己的机器上我把msvcp80d.dll等这些文件考到vc6下面的库文件目录,使用use mfc in static librar 发布release 版本可以成功,没有问题,但是考到别的没有这些文件的机器上就会出现
无法找到动态链接库msvcp80d.dll 这个错误,从网上搜了一下大多是在2005中碰到的问题,  没有找到答案

25 个解决方案

#1


把动态库考到你的exe目录
也就是说,发布的时候应该需要这个动态库
不太清楚2005,这样应该可以,但是不确定是最好的方法

#2


能不能不考那些文件。??

#3


静态链接不行吗?
release版本~

#4


我是用release版本发布的

#5


既然是你调用的DLL需要msvcp80d.dll,如果没有源代码,那就只能把它带上了。
顺便提下,这个DLL是Debug版的。

#6


引用 5 楼 cnzdgs 的回复:
既然是你调用的DLL需要msvcp80d.dll,如果没有源代码,那就只能把它带上了。 
顺便提下,这个DLL是Debug版的。


我想知道产生这种情况的原因是否是由于我所引用的库中有一个是  debug版本编译的,所以必须要用到那些库,
我程序中使用了一个FreeImage.lib 这个我是用vs2005编译的release版本怎么也不行呢,
我的项目是vc6做的

#7


把2005的项目属性—C/C++—代码生成—运行时库改成没有DLL字样的选项。

#8


我把那个库用2005编译了一下,改成md可以,但改成不带dll的还是不行。

#9


用VC附带的depends查一下哪些DLL依赖msvcp80d,都这样修改重新生成。

#10


引用 8 楼 friendwaters 的回复:
我把那个库用2005编译了一下,改成md可以,但改成不带dll的还是不行。

你所有的库文件都用 /MT方式

#11


楼上的都不对  我遇到这个问题都是
项目 清单工具 嵌入清单 输入和输出-否 解决的。

还有有些情况是 清单工具 常规 使用FAT32解决办法 是 就OK了

#12


我所用到的库都用/mt方式编译,在我的机器上能运行,但是考到其他的机器上出现
the application failed to initialize properly (0xc0000135),

楼上所说的项目 清单工具 嵌入清单 输入和输出-否 解决的。 
这些项目在哪?我用的vc6.没有找到啊

#13


0xc0000135表示某个DLL没有找到,看看你是不是缺少某个DLL没有一起复制过去。

#14


引用 12 楼 friendwaters 的回复:
我所用到的库都用/mt方式编译,在我的机器上能运行,但是考到其他的机器上出现 
the application failed to initialize properly (0xc0000135), 

楼上所说的项目 清单工具 嵌入清单 输入和输出-否 解决的。 
这些项目在哪?我用的vc6.没有找到啊

vc6没有这些,vs2005中才有...

#15


引用 12 楼 friendwaters 的回复:
我所用到的库都用/mt方式编译,在我的机器上能运行,但是考到其他的机器上出现 
the application failed to initialize properly (0xc0000135), 

楼上所说的项目 清单工具 嵌入清单 输入和输出-否 解决的。 
这些项目在哪?我用的vc6.没有找到啊

0xc0000135 -- 表示缺少.net Frameword框架的一些类库等,你还有一些运行库文件等没有带上

#16


这个问题老烦人了。顶!

#17


我也碰到过这种情况.
当时就是把所需要的DLL全拷出来和EXE文件放在一个目录下就可以.
在 X(安装盘):\Program Files\Microsoft Visual Studio 8\VC\redist 目录下

   Release_Dll:
msvcp80.dll
msvcr80.dll
Microsoft.VC80.CRT.manifest  这三个在 redist\x86\Microsoft.VC80.CRT 目录下

mfcm80u.dll   
mfc80u.dll
Microsoft.VC80.MFC.manifest  这两个在 redist\x86\Microsoft.VC80.MFC 目录下

atl80.dll
Microsoft.VC80.ATL.manifest  这两个在 redist\x86\Microsoft.VC80.ATL 目录下


   Debug_Dll:
msvcr80d.dll
msvcp80d.dll
Microsoft.VC80.DebugCRT.manifest    redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT 目录下

mfcm80ud.dll
mfc80ud.dll
Microsoft.VC80.DebugMFC.manifest    redist\Debug_NonRedist\x86\Microsoft.VC80.DebugMFC 目录下

ATL80.dll
Microsoft.VC80.ATL.manifest


其中atl80.dll和Microsoft.VC80.ATL.manifest是一样的.

#18


引用 17 楼 dir541541 的回复:
ATL80.dll
Microsoft.VC80.ATL.manifest


其中atl80.dll和Microsoft.VC80.ATL.manifest是一样的.


这是指release和debug里面的这两个文件是同一份.

#19


也碰到过,不过知道怎么弄,被我弄好了

#20


做安装包,并集成vc依赖库

#21


复制对应的DLL文件

#22


做个安装文件吧。

#23


引用 1 楼 jimoguilai 的回复:
把动态库考到你的exe目录 
也就是说,发布的时候应该需要这个动态库 
不太清楚2005,这样应该可以,但是不确定是最好的方法


Up

发布版本的时候, 需要带上这个动态库.
程序需要他的支持才能运行.

#24


带上那些库文件是可以运行的,就是使用的uskin的免费皮肤不能加载

我所使用的库都是使用mt/方式编译,我的程序也是使用mt/方式编译的,为什么那些文件还是得需要呢,,
有原因可以解释吗?

#25


首先可能是你的uskin是vs2005编译的。
然后你用vc6新建了一个你自己的工程。然后使用了uskin的函数。
vc6太老了。我自己都不太喜欢用vc6了。
但凡用vc6的只有2种人。
一种是牛人。牛人不管什么IDE都用得好。他们自己用cl.exe都OK。
另一种是 自找麻烦。尤其是做界面开发需要用到platform SDK函数的。当然我并没有说用.net的函数。

-----
之所以会遇到应用程序初始化失败0xc0005的问题。第一个是按我说的 项目清单 嵌入清单那个为否。
另外release使用MT就不再需要MSVC80系列的DLL了。所以使用T选项一般不会遇到什么缺少MSVC8系列DLL的问题。如有 请把嵌入清单的输入输出 改为否。另外改为不使用mainfest。
所谓的T。就是静态链接c运行库的意思。
-----


#1


把动态库考到你的exe目录
也就是说,发布的时候应该需要这个动态库
不太清楚2005,这样应该可以,但是不确定是最好的方法

#2


能不能不考那些文件。??

#3


静态链接不行吗?
release版本~

#4


我是用release版本发布的

#5


既然是你调用的DLL需要msvcp80d.dll,如果没有源代码,那就只能把它带上了。
顺便提下,这个DLL是Debug版的。

#6


引用 5 楼 cnzdgs 的回复:
既然是你调用的DLL需要msvcp80d.dll,如果没有源代码,那就只能把它带上了。 
顺便提下,这个DLL是Debug版的。


我想知道产生这种情况的原因是否是由于我所引用的库中有一个是  debug版本编译的,所以必须要用到那些库,
我程序中使用了一个FreeImage.lib 这个我是用vs2005编译的release版本怎么也不行呢,
我的项目是vc6做的

#7


把2005的项目属性—C/C++—代码生成—运行时库改成没有DLL字样的选项。

#8


我把那个库用2005编译了一下,改成md可以,但改成不带dll的还是不行。

#9


用VC附带的depends查一下哪些DLL依赖msvcp80d,都这样修改重新生成。

#10


引用 8 楼 friendwaters 的回复:
我把那个库用2005编译了一下,改成md可以,但改成不带dll的还是不行。

你所有的库文件都用 /MT方式

#11


楼上的都不对  我遇到这个问题都是
项目 清单工具 嵌入清单 输入和输出-否 解决的。

还有有些情况是 清单工具 常规 使用FAT32解决办法 是 就OK了

#12


我所用到的库都用/mt方式编译,在我的机器上能运行,但是考到其他的机器上出现
the application failed to initialize properly (0xc0000135),

楼上所说的项目 清单工具 嵌入清单 输入和输出-否 解决的。 
这些项目在哪?我用的vc6.没有找到啊

#13


0xc0000135表示某个DLL没有找到,看看你是不是缺少某个DLL没有一起复制过去。

#14


引用 12 楼 friendwaters 的回复:
我所用到的库都用/mt方式编译,在我的机器上能运行,但是考到其他的机器上出现 
the application failed to initialize properly (0xc0000135), 

楼上所说的项目 清单工具 嵌入清单 输入和输出-否 解决的。 
这些项目在哪?我用的vc6.没有找到啊

vc6没有这些,vs2005中才有...

#15


引用 12 楼 friendwaters 的回复:
我所用到的库都用/mt方式编译,在我的机器上能运行,但是考到其他的机器上出现 
the application failed to initialize properly (0xc0000135), 

楼上所说的项目 清单工具 嵌入清单 输入和输出-否 解决的。 
这些项目在哪?我用的vc6.没有找到啊

0xc0000135 -- 表示缺少.net Frameword框架的一些类库等,你还有一些运行库文件等没有带上

#16


这个问题老烦人了。顶!

#17


我也碰到过这种情况.
当时就是把所需要的DLL全拷出来和EXE文件放在一个目录下就可以.
在 X(安装盘):\Program Files\Microsoft Visual Studio 8\VC\redist 目录下

   Release_Dll:
msvcp80.dll
msvcr80.dll
Microsoft.VC80.CRT.manifest  这三个在 redist\x86\Microsoft.VC80.CRT 目录下

mfcm80u.dll   
mfc80u.dll
Microsoft.VC80.MFC.manifest  这两个在 redist\x86\Microsoft.VC80.MFC 目录下

atl80.dll
Microsoft.VC80.ATL.manifest  这两个在 redist\x86\Microsoft.VC80.ATL 目录下


   Debug_Dll:
msvcr80d.dll
msvcp80d.dll
Microsoft.VC80.DebugCRT.manifest    redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT 目录下

mfcm80ud.dll
mfc80ud.dll
Microsoft.VC80.DebugMFC.manifest    redist\Debug_NonRedist\x86\Microsoft.VC80.DebugMFC 目录下

ATL80.dll
Microsoft.VC80.ATL.manifest


其中atl80.dll和Microsoft.VC80.ATL.manifest是一样的.

#18


引用 17 楼 dir541541 的回复:
ATL80.dll
Microsoft.VC80.ATL.manifest


其中atl80.dll和Microsoft.VC80.ATL.manifest是一样的.


这是指release和debug里面的这两个文件是同一份.

#19


也碰到过,不过知道怎么弄,被我弄好了

#20


做安装包,并集成vc依赖库

#21


复制对应的DLL文件

#22


做个安装文件吧。

#23


引用 1 楼 jimoguilai 的回复:
把动态库考到你的exe目录 
也就是说,发布的时候应该需要这个动态库 
不太清楚2005,这样应该可以,但是不确定是最好的方法


Up

发布版本的时候, 需要带上这个动态库.
程序需要他的支持才能运行.

#24


带上那些库文件是可以运行的,就是使用的uskin的免费皮肤不能加载

我所使用的库都是使用mt/方式编译,我的程序也是使用mt/方式编译的,为什么那些文件还是得需要呢,,
有原因可以解释吗?

#25


首先可能是你的uskin是vs2005编译的。
然后你用vc6新建了一个你自己的工程。然后使用了uskin的函数。
vc6太老了。我自己都不太喜欢用vc6了。
但凡用vc6的只有2种人。
一种是牛人。牛人不管什么IDE都用得好。他们自己用cl.exe都OK。
另一种是 自找麻烦。尤其是做界面开发需要用到platform SDK函数的。当然我并没有说用.net的函数。

-----
之所以会遇到应用程序初始化失败0xc0005的问题。第一个是按我说的 项目清单 嵌入清单那个为否。
另外release使用MT就不再需要MSVC80系列的DLL了。所以使用T选项一般不会遇到什么缺少MSVC8系列DLL的问题。如有 请把嵌入清单的输入输出 改为否。另外改为不使用mainfest。
所谓的T。就是静态链接c运行库的意思。
-----