DLL相对路径:DLL文件未找到
2016-03-01 22:50
483 查看
http://blog.163.com/shikang999@126/
问题:在使用VBA时,有时我们会调用外部的Dll文件,而此DLL文件会随着打包程序的发放而放在不同的目录,由于Dll文件就放置在执行文件的一个相对路径下,这时在程序内部定义调用Dll文件时,其定义的路径为相对路径.然而很多时候程序并不能识别到定义的Dll文件路径。如何让程序自动识别相对路径,即为本问题所在!
解决:设置指定路径为当前系统目录即可.使用的API函数为SetCurrentDirectoryA
例子:
//下面的例子是,在VBA要执行的代码里,需要调用外部Dll文件"FEM.Dll"里的函数TestSub,而外部这Dll文件放在当前激活文件目录下"\Lib\FEM.Dll",在执行TestSub函数前,直接使用SetCurrentDirectoryA设置当前目录即可.看代码:
Public Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long '注意这是API函数的申明
Declare Sub TestSub Lib ".\Lib\FEM.dll"(ByVal a As Integer,ByVal b As Integer) '注意当中相对路径的写法
Sub RoundedRectangle1_Click()
SetCurrentDirectory(Application.ActiveWorkbook.Path) '很重要,设置当前激活目录
Call TestSub(1,2) '调用函数示例
End Sub
阅读更多相关文章推荐
- 未能找到元数据文件“引用的DLL的路径”
- 编译时如果发现无法打开或无法找到 .exe 文件 编译相对路径的设置
- 如何找到配置文件的相对路径
- log4j中配置日志文件相对路径
- 【转载】如何通过打开文件的fd值,找到被打开文件的全路径
- Java上传一个文件到相对路径
- eclipse,工程/文件目录,相对路径(真心的详细~)
- 相对和绝对路径及常用文件命令
- log4j中日志输出文件指定相对路径的方法
- Labview生成exe可执行文件后相对路径无法使用
- 无法找到hal.dll文件怎么办?
- 文件的相对路径和绝对路径
- log4j中配置日志文件相对路径方法
- VS2010中调用matlab文件,没有找到mclmcr.dll,应用程序未能启动
- iOS开发之 pch文件的使用,以及相对路径和绝对路径的设置
- C# 程序中加载dll文件,根据dll名称寻找dll文件路径并load
- DLL加载设置相对路径的方法
- 正在编译转换: 未能找到元数据文件 EntityFramework.dll
- ecshop怎么找到相应的语言包?是在哪一个文件找到相应的路径的?
- 一道PHP面试题,求两个文件的相对路径