在VBA开发过程中,为了能够使用系统已经提供的函数,或已经用C++语言开发的功能,本文对VBA调用C++ DLL进行了总结。
1. 函数声明
Function prototype:
DWORD WINAPI GetCurrentDirectory(
__in DWORD nBufferLength,
__out LPTSTR lpBuffer
);
函数声明如下:
Public Declare Function GetCurrentDirectoryLib "kernel32" Alias "GetCurrentDirectoryA" (ByValnBufferLength As Long, ByVal lpBuffer As String) As Long
Public 用于声明对所有模块中的所有其它过程都可以使用的函数。 Private 用于声明只能在包含该声明的模块中使用的函数。
Lib包含所声明函数的动态链接库名或代码资源名。
Alias 表示将被调用的函数在动态链接库(DLL) 中还有另外的名称。
2. DLL的位置
DLL文件必须位于以下三个目录之一:
(1)Windows的系统目录:\Windows\system32
(2)DOS中path所指出的任何目录
(3)Windows XP系统下:C:\Documentsand Settings\%USERNAME%\My Documents
为了VBA可以调用DLL中的函数,必须把DLL放在以上三个位置中的任何一个。
有两种办法可以解决这个问题:
1. 在调用