永发信息网

用VC2005编写生成的dll文件,在vs2010中动态加载,在某些机器上会出现加载动态库失败返回错误值14001.

答案:1  悬赏:20  手机版
解决时间 2021-01-09 03:23
  • 提问者网友:精神病院里
  • 2021-01-08 06:54
用VC2005编写生成的dll文件,在vs2010中动态加载,在某些机器上会出现加载动态库失败返回错误值14001.
最佳答案
  • 五星知识达人网友:青尢
  • 2021-01-08 07:29
这个情况十有八九是缺少msvcr80d.dll / msvcp80d.dll。
debug版的dll需要调用msvcr80d.dll / msvcp80d.dll,release版则是msvcr80.dll / msvcp80.dll。
ralease版正常是因为电脑已经装了vcredist2005,会装上 msvcr80.dll / msvcp80.dll。
而带d的表示debug版则不会附带,要安装vs2005才会帮你把带d的装上。
解决办法是从编译的机子上的windows\system32下面找到 msvcr80d.dll / msvcp80d.dll 这两个文件,考到对方机子windows\system32下面就可以了。追问1、msvcr80d.dll / msvcp80d.dll在windows\system32下没有
2、C:\Program Files\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT目录下有追答那就从这里拿也一样的,拷过去就行了追问我把这两个文件拷到目标机中的windows\system32下面了,可是还是加载失败,还有什么需要注意的细节什么的吗?比如环境变量?我不太懂,希望得到你的帮助解决这个问题,谢谢啊追答目标机是64位系统还是32位的?追问32位的,编译机器也是32位的。目标机上没有msvcr80d.dll / msvcp80d.dll,但是我考过去之后不行啊追答可以做这样的测试,编译一个控制台程序,只要一句getchar(),编译debug版放到目标机子上运行,看报“缺少xxxx.dll文件”来确定到底缺少了什么dll,如果不报错说明dll是全的,那么你编译的dll放过去加载应该也是没问题的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯