帮忙看一下,有关vb的

来源:百度知道 编辑:UC知道 时间:2024/05/07 08:12:20
我运行的时候,出现 "用户定义类型未定义" 然后下面这行被选中.
Public Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
为什么会这样呢?这是我从api中调出来的声明啊,为什么有定义呢?

出现这种错误主要是因为你没有为第二个参数中的POINTAPI类型做声明,在使用它之前要加上下面的结构体类型声明:
Private Type POINTAPI
x As Long
y As Long
End Type
接着是API函数的声明部分:
Private Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long

注意:一定要加上"Private"关键字,因为是窗体模块中声明的,在公共模块中声明就可以使用Public
OK,程序到此能成功执行了,运行环境:VB6.0+WinXP,欢迎加入:30538950

还有这一句 lpPoint As POINTAPI
你定义了 POINTAPI 没有

把Public 改成Private

Private Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long

因为你是放在当前窗体代码中的,所以不能用Public而要用Private
如果放在模块中的话,才用Public