(拜求指点)使用VB调用API函数老是显示函数未定度呢?

来源:百度知道 编辑:UC知道 时间:2024/06/04 19:19:21
模块内代码:Public Declare Function GetComputerNameW Lib "kernel32" (lpBuffer As Any, nSize As Long) As Long
程序内代码:Private Sub Form_Load()
Dim s$
s$ = String$(MAX_COMPUTERNAME_LENGTH + 1, 0)
Dim dl&
Dim sz&
sz& = MAX_COMPUTERNAME_LENGTH + 1
dl& = GetComputerName(s$, sz)
i=msgbox("电脑的名字为:",64,dl&)
if i=o then
end
end if
End Sub
执行程序结果为:编译错误:
子程序或函数未定义
这是怎么回事呢?

Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Const MAX_COMPUTERNAME_LENGTH = 15
Private Sub Form_Load()
Dim s$
s$ = String$(MAX_COMPUTERNAME_LENGTH + 1, 0)
Dim dl&
Dim sz&
sz& = MAX_COMPUTERNAME_LENGTH + 1
dl& = GetComputerName(s$, sz)
MsgBox s
End Sub

你的函数声明如果是从vb自带的那个玩意里面弄出来的话,可以考虑换一个api函数定义的程序。从里面找出你需要的函数,复制出来。我记得以前遇到过从vb再带的api函数定义器中复制的函数 定义不对的情况。网上查了下才知道是自带的api定义器的函数定义中某个地方多了个空格。调用api也要注意字母的大小写问题!

dsds