您的位置:首页 > 其它

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

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: