游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2264|回复: 7

一个代码看不懂,求教

[复制链接]

21

主题

43

帖子

43

积分

注册会员

Rank: 2

积分
43
发表于 2006-6-26 21:14:00 | 显示全部楼层 |阅读模式
那位大师可以把它详细的注解一下,谢了![em13]
Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Function SysPath() As String
SysPath = String(145, Chr(0))
SysPath = Left(SysPath, GetSystemDirectory(SysPath, 145)) & "\"
End Function

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2006-6-26 23:08:00 | 显示全部楼层

Re:一个代码看不懂,求教

这个函数大概是用于取得Windows系统目录(System目录)的完整路径名。根据微软的标准,其他定制控件和一些共享组件也可放到这个目录。通常应避免在这个目录里创建文件。在网络环境中,往往需要管理员权限才可对这个目录进行写操作。我也是新手不知道写的这些对你有没有帮助。

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2006-6-27 13:22:00 | 显示全部楼层

Re:一个代码看不懂,求教

这个程序代码写得很糟糕。
SysPath = Left(SysPath, GetSystemDirectory(SysPath, 145)) & "\"
虽然这一句实际运行没有什么问题,但是建议不要这样写,函数名不要随便乱用。

现在回来看代码

'这一个声明是一个取得系统路径的API
Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long


Function SysPath() As String
SysPath = String(145, Chr(0)) '这是将SysPath这个String型变量(注意此处SysPath是变量,不是函数名)赋值为145个chr(0)的字符,chr(0)就是获得ASCII码值为0的字符
SysPath = Left(SysPath, GetSystemDirectory(SysPath, 145)) & "\"  '此句里面等号右边的所有SysPath都要按变量来理解,这也就是它糟糕的原因。
End Function

20

主题

451

帖子

470

积分

中级会员

Rank: 3Rank: 3

积分
470
发表于 2006-6-29 06:24:00 | 显示全部楼层

Re:一个代码看不懂,求教

补充楼上得,这里得syspath是函数名也是返回值。
这个代码写得也太不规范了,我来改一下
Function SysPath() As String
dim path as string
path = String(145, Chr(0))'添加145个零字符占位
path = Left(Path, GetSystemDirectory(Path, 145)) & "\"'我估计getsystemdirectory得返回值是系统目录长度
return path' 返回值
End Function

14

主题

175

帖子

175

积分

注册会员

Rank: 2

积分
175
发表于 2006-7-1 17:54:00 | 显示全部楼层

Re:一个代码看不懂,求教

3楼和4楼说得太对了。在函数里面可不要拿函数名字当作一般的变量乱用,要吃大亏的。

15

主题

2093

帖子

2093

积分

金牌会员

Rank: 6Rank: 6

积分
2093
发表于 2006-7-4 22:25:00 | 显示全部楼层

Re:一个代码看不懂,求教

函数名在函数中作为函数返回值的变量来使用,这是VB中很有特色的一个特性啊,怎么成了乱用了…………

20

主题

451

帖子

470

积分

中级会员

Rank: 3Rank: 3

积分
470
发表于 2006-7-5 04:31:00 | 显示全部楼层

Re:一个代码看不懂,求教

利用这个特性容易吃亏的~
还是用比较规范点的return比较好,不容易出错

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2006-7-5 12:24:00 | 显示全部楼层

Re: Re:一个代码看不懂,求教

psic: Re:一个代码看不懂,求教

函数名在函数中作为函数返回值的变量来使用,这是VB中很有特色的一个特性啊,怎么成了乱用了…………


是特性没错,但特性有时候会被乱用的。

一般的建议是,过程中的变量不要使用函数名,仅在返回变量值(return)的时候使用它。

因为Basic语言中的函数名代表的意义太多了,滥用会吃亏的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-24 20:38

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表