但是运行程序的时候就提示 Error53:找不到文件xxx.dll
我把dll文件copy到windows或者system32文件夹下也不行
regsvr32也注册不了
我的DLL文件是用Vc2010编的,c语言
百度看到VC6编的,遇到同样问题的说是缺少运行库支持
可我机子上装了VS2010,肯定不会缺少运行库
这该怎么解决啊?
还有当初包含dll导出函数声明的C头文件叫AAA.H的,工程名也叫AAA
生成的DLL文件名也是AAA.dll
后来我把DLL名字改成BBB.dll,运行程序时VB提示error48:找不到文件xxx.dll
如果还用AAA.dll文件名,就是Error53:找不到文件xxx.dll
这是怎么回事?
谢谢!!!
7 个解决方案
#1
你得说明白找不到的是你写的DLL还是其它引用的DLL,你AAA、XXX的都让人犯晕了
#2
呃, 是我疏忽了,xxx.dll就是AAA.dll
我编写的那个dll就是aaa.dll,执行exe文件时候就提示 Error53:找不到文件aaa.dll
我编写的那个dll就是aaa.dll,执行exe文件时候就提示 Error53:找不到文件aaa.dll
#4
看一下那个AAA.DLL工程需要什么库,以什么模式编译的。
#5
系统会从以下位置找DLL:
1、Exe所在目录;
2、当前目录(注意别和Exe所在目录混淆)
3、系统目录
4、环境变量指定的目录
出现你的这种问题,有两种可能:
1、程序中声明时拼写错误,如全角半角字符,是需要区分的;
2、你在VB的IDE环境中直接运行,当前目录和Exe所在目录是不一定一致的,在VB的IDE环境中直接运行时系统将在当前目录、系统目录和环境变量指定的目录中查找你的DLL,而不是在Exe所在目录(IDE不会去运行你编译好的Exe),你可以直接在Windows环境中运行你的EXE试试。
1、Exe所在目录;
2、当前目录(注意别和Exe所在目录混淆)
3、系统目录
4、环境变量指定的目录
出现你的这种问题,有两种可能:
1、程序中声明时拼写错误,如全角半角字符,是需要区分的;
2、你在VB的IDE环境中直接运行,当前目录和Exe所在目录是不一定一致的,在VB的IDE环境中直接运行时系统将在当前目录、系统目录和环境变量指定的目录中查找你的DLL,而不是在Exe所在目录(IDE不会去运行你编译好的Exe),你可以直接在Windows环境中运行你的EXE试试。
#6
有的时候,只有生成exe才可以使用
#7
已经解决了,很莫名其妙的解决了。
我的exe文件和两个dll文件都在同一个目录(a.dll调用b.dll)(a.dll之前是个cmd版的exe文件,现在想要个windows界面,于是想把它改成dll,用vb弄个界面调用),目录名字也没中文,之前不管是直接运行exe文件还是在IDE里调试,查看Loadlibrary的返回值,都不成功,不是找不到dll文件就是返回值一直都是0,即使把dll文件copy或者剪切到system32里也不行,错误依旧。
后来换了个DLL文件Loadlibrary就正常返回内存地址,于是我怀疑可能是我的dll有问题,但检查半天也没发现哪里有问题。
今天下午又弄了半天,还是不行,后来我把b.dll复制到了system32下,结果一切正常了……
搞得我莫名其妙的。b.dll是别人写的,以前就和exe文件在同一个目录,调用时候一切正常,现在exe变成a.dll了,放一起反倒不能用了,copy到system32才正常,还只能copy b.dll……
我的exe文件和两个dll文件都在同一个目录(a.dll调用b.dll)(a.dll之前是个cmd版的exe文件,现在想要个windows界面,于是想把它改成dll,用vb弄个界面调用),目录名字也没中文,之前不管是直接运行exe文件还是在IDE里调试,查看Loadlibrary的返回值,都不成功,不是找不到dll文件就是返回值一直都是0,即使把dll文件copy或者剪切到system32里也不行,错误依旧。
后来换了个DLL文件Loadlibrary就正常返回内存地址,于是我怀疑可能是我的dll有问题,但检查半天也没发现哪里有问题。
今天下午又弄了半天,还是不行,后来我把b.dll复制到了system32下,结果一切正常了……
搞得我莫名其妙的。b.dll是别人写的,以前就和exe文件在同一个目录,调用时候一切正常,现在exe变成a.dll了,放一起反倒不能用了,copy到system32才正常,还只能copy b.dll……
#1
你得说明白找不到的是你写的DLL还是其它引用的DLL,你AAA、XXX的都让人犯晕了
#2
呃, 是我疏忽了,xxx.dll就是AAA.dll
我编写的那个dll就是aaa.dll,执行exe文件时候就提示 Error53:找不到文件aaa.dll
我编写的那个dll就是aaa.dll,执行exe文件时候就提示 Error53:找不到文件aaa.dll
#3
#4
看一下那个AAA.DLL工程需要什么库,以什么模式编译的。
#5
系统会从以下位置找DLL:
1、Exe所在目录;
2、当前目录(注意别和Exe所在目录混淆)
3、系统目录
4、环境变量指定的目录
出现你的这种问题,有两种可能:
1、程序中声明时拼写错误,如全角半角字符,是需要区分的;
2、你在VB的IDE环境中直接运行,当前目录和Exe所在目录是不一定一致的,在VB的IDE环境中直接运行时系统将在当前目录、系统目录和环境变量指定的目录中查找你的DLL,而不是在Exe所在目录(IDE不会去运行你编译好的Exe),你可以直接在Windows环境中运行你的EXE试试。
1、Exe所在目录;
2、当前目录(注意别和Exe所在目录混淆)
3、系统目录
4、环境变量指定的目录
出现你的这种问题,有两种可能:
1、程序中声明时拼写错误,如全角半角字符,是需要区分的;
2、你在VB的IDE环境中直接运行,当前目录和Exe所在目录是不一定一致的,在VB的IDE环境中直接运行时系统将在当前目录、系统目录和环境变量指定的目录中查找你的DLL,而不是在Exe所在目录(IDE不会去运行你编译好的Exe),你可以直接在Windows环境中运行你的EXE试试。
#6
有的时候,只有生成exe才可以使用
#7
已经解决了,很莫名其妙的解决了。
我的exe文件和两个dll文件都在同一个目录(a.dll调用b.dll)(a.dll之前是个cmd版的exe文件,现在想要个windows界面,于是想把它改成dll,用vb弄个界面调用),目录名字也没中文,之前不管是直接运行exe文件还是在IDE里调试,查看Loadlibrary的返回值,都不成功,不是找不到dll文件就是返回值一直都是0,即使把dll文件copy或者剪切到system32里也不行,错误依旧。
后来换了个DLL文件Loadlibrary就正常返回内存地址,于是我怀疑可能是我的dll有问题,但检查半天也没发现哪里有问题。
今天下午又弄了半天,还是不行,后来我把b.dll复制到了system32下,结果一切正常了……
搞得我莫名其妙的。b.dll是别人写的,以前就和exe文件在同一个目录,调用时候一切正常,现在exe变成a.dll了,放一起反倒不能用了,copy到system32才正常,还只能copy b.dll……
我的exe文件和两个dll文件都在同一个目录(a.dll调用b.dll)(a.dll之前是个cmd版的exe文件,现在想要个windows界面,于是想把它改成dll,用vb弄个界面调用),目录名字也没中文,之前不管是直接运行exe文件还是在IDE里调试,查看Loadlibrary的返回值,都不成功,不是找不到dll文件就是返回值一直都是0,即使把dll文件copy或者剪切到system32里也不行,错误依旧。
后来换了个DLL文件Loadlibrary就正常返回内存地址,于是我怀疑可能是我的dll有问题,但检查半天也没发现哪里有问题。
今天下午又弄了半天,还是不行,后来我把b.dll复制到了system32下,结果一切正常了……
搞得我莫名其妙的。b.dll是别人写的,以前就和exe文件在同一个目录,调用时候一切正常,现在exe变成a.dll了,放一起反倒不能用了,copy到system32才正常,还只能copy b.dll……