求助:调用DLL时候找不到文件

春风老少年 2011-08-14 07:45:44
VB生成了EXE文件,DLL文件和EXE文件放在同一个目录下
但是运行程序的时候就提示 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
这是怎么回事?

谢谢!!!
...全文
237 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
春风老少年 2011-08-16
  • 打赏
  • 举报
回复
已经解决了,很莫名其妙的解决了。
我的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……
ningweidong 2011-08-16
  • 打赏
  • 举报
回复
有的时候,只有生成exe才可以使用
神马都能聊 2011-08-15
  • 打赏
  • 举报
回复
看一下那个AAA.DLL工程需要什么库,以什么模式编译的。
c_cyd2008 2011-08-15
  • 打赏
  • 举报
回复
系统会从以下位置找DLL:
1、Exe所在目录;
2、当前目录(注意别和Exe所在目录混淆)
3、系统目录
4、环境变量指定的目录
出现你的这种问题,有两种可能:
1、程序中声明时拼写错误,如全角半角字符,是需要区分的;
2、你在VB的IDE环境中直接运行,当前目录和Exe所在目录是不一定一致的,在VB的IDE环境中直接运行时系统将在当前目录、系统目录和环境变量指定的目录中查找你的DLL,而不是在Exe所在目录(IDE不会去运行你编译好的Exe),你可以直接在Windows环境中运行你的EXE试试。
春风老少年 2011-08-14
  • 打赏
  • 举报
回复
呃, 是我疏忽了,xxx.dll就是AAA.dll
我编写的那个dll就是aaa.dll,执行exe文件时候就提示 Error53:找不到文件aaa.dll
c_cyd2008 2011-08-14
  • 打赏
  • 举报
回复
你得说明白找不到的是你写的DLL还是其它引用的DLL,你AAA、XXX的都让人犯晕了

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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