API编程常见问题及解决方案
1. 数组参数传递问题
在API编程中,当将API参数声明为数组时,Visual Basic会传递一个指向数组变量的指针,即指向SAFEARRAY结构的指针。但对于Polyline函数,应避免将参数声明为数组,而是传递数组的指针。
以下是解决步骤:
1. 修改函数声明:
Private Declare Function Polyline Lib "gdi32" (ByVal hdc As Long, _
lppt As POINTAPI, ByVal nCount As Long) As Long
- 修改函数调用方式:
从Call Polyline(hdc, PointArray(), points)改为Call Polyline(hdc, PointArray(0), points)。
通过这样的修改,我们传递的是数组中第一个结构的地址,只要数组中的结构在内存中是连续的,就相当于传递了整个数组的指针。
2. GetVersionEx函数问题
调用GetVersionEx函数时可能会遇到函数未找到或返回无效结果的问题。
- 函数名问题 :函数在DLL中的名称可能与文档中的不同,通常是因为函数有ANSI和Unicode两个入口点。对于GetVersionEx函数,由于OSVERSIONINFO结构中包含字符串,所以需要使
超级会员免费看
订阅专栏 解锁全文
2210

被折叠的 条评论
为什么被折叠?



