这个API调用没胡有语 错误,但为什么在打印出来好多小四方格呀,我以前也遇到 过,不知什么原因

Private Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long



Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long


Private Sub Form_Click()
Dim temppath As String * 255, tempfilex As String * 255
x = GetTempPath(255, temppath)
temppath = Left(tempfilex, x)
x = GetTempFileName(temppath, "API", 0, tempfilex)
tempfile = Left(Trim(tempfilex), Len(Trim(tempfilex)))
Print "temporary filename is:"
Print tempfile


Print Len(t)
End Sub

...全文
37 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pigpag 2003-08-04
  • 打赏
  • 举报
回复
因为返回的x是字符串的字节数。

……可能吧……我怎么就不需要这句的
  • 打赏
  • 举报
回复
那是为什么呀???????
zyl910 2003-08-03
  • 打赏
  • 举报
回复
temppath = StrConv(LeftB(StrConv(tempfilex,vbFromUnicode), x), vbUnicode)
  • 打赏
  • 举报
回复
学贵有恒,不必三更眠五更起。
功期无间,只怕一日曝十日寒
学海无涯,孜孜不倦苦为今生,
明年今日,功名成就无尽飞来!
执着追求 永不言败
pigpag 2003-08-03
  • 打赏
  • 举报
回复
而且
Private Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long
注意,其中lpszPath As String不能是定长字符串。

所以要这样:
Private Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long



Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long


Private Sub Form_Click()
Dim temppath As String * 255, tempfilex As String * 255
x = GetTempPath(255, temppath)
x = GetTempFileName(Left(temppath, x), "API", 0, tempfilex)
tempfile = Left(Trim(tempfilex), Len(Trim(tempfilex)))
Print "temporary filename is:"
Print tempfile

Print Len(t)
End Sub
pigpag 2003-08-03
  • 打赏
  • 举报
回复
temppath = Left(tempfilex, x)
改为
temppath = Left(temppath, x)
  • 打赏
  • 举报
回复
我实在不知为什么呀

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧