feixianglld 2014-10-30 02:26
浏览 1679

vba 中调用win 32 的api接口

※ 下面问题本人也在网上找了很久的答案,可是均不行,希望各位看官能帮帮忙。谢谢。
其中
i 找了win32的返回值为字符串的win32 api的VBA接口调用 =》 测试成功,方法这里就不说了
i 找了win32通过参数返回字符串的win32 api的VBA接口调用 =》测试成功,方法这里就不说了
i 找了通过参数返回字符串数组的自定义C的api的VBA接口调用 =》没测试
例如: C的test.dll接口: void test(char *szArray);
对应的VBA:Private Declare Sub Import_test Lib "test.dll" Alias "test" (ByRef szArray() As String)

※win32 API声明
LPCWSTR PathFindSuffixArrayW(LPCWSTR pszPath, const LPCWSTR *apszSuffix, int iArraySize);
文件位于: C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\Shlwapi.h
库名:shlwapi.dll =》 windows系统自带库
函数功能:查找文件pszPath的扩展名是否属于指定的扩展名数组中,如果是,返回文件的扩展名
说明:参数apszSuffix指向字符串的数组,参数iArraySize为apszSuffix字符串数组的元素个数。

※vba 导入声明
Private Declare Function Import_PathFindSuffixArray Lib "shlwapi.dll" Alias "PathFindSuffixArrayA" (ByVal pszPath As String, ByVal apszSuffix As String, ByVal iArraySize As Long) As Long
=》这个声明正确吗?这是通过ApiView工具自动生成的对应vb接口

我测试了下面的各种声明,均得不到正确结果
Private Declare Function Import_PathFindSuffixArray Lib "shlwapi.dll" Alias "PathFindSuffixArrayA" (ByVal pszPath As String, ByRef apszSuffix() As String, ByVal iArraySize As Long) As Long
Private Declare Function Import_PathFindSuffixArray Lib "shlwapi.dll" Alias "PathFindSuffixArrayA" (ByVal pszPath As String, ByRef apszSuffix As String, ByVal iArraySize As Long) As Long

※接口使用
Dim strTest(2) As String
strTest(0) = ".txt"
strTest(1) = ".ini"
strTest(2) = ".h"

Dim strFile As String
strFile = "abc.ini"

//在C++/C中调用PathFindSuffixArrayW(strFile , strTest, 3)返回 “.ini"

我试了如下的调用,均得不到正确结果
Import_PathFindSuffixArray (strFile , strTest, 3)
Import_PathFindSuffixArray (strFile , strTest(0), 3)
Import_PathFindSuffixArray (strFile , StrPtr(strTest), 3)

//那么请问 : 在VBA中怎么调用这个接口

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥20 idea运行测试代码报错问题
    • ¥15 网络监控:网络故障告警通知
    • ¥15 django项目运行报编码错误
    • ¥15 请问这个是什么意思?
    • ¥15 STM32驱动继电器
    • ¥15 Windows server update services
    • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
    • ¥15 模糊pid与pid仿真结果几乎一样
    • ¥15 java的GUI的运用
    • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。