VB 版 (精华区)

发信人: bloom (小石头长大了), 信区: VB
标  题: 内存、字符串、结构及资源函数(1)
发信站: 哈工大紫丁香 (2000年07月23日17:42:52 星期天), 转信

              目录
AddAtom 为本地原子表添加一个原子
BeginUpdateResource 用于启动在一个可执行文件中更新资源的进程
CharLower 将一个字串转换成小写形式
CharLowerBuff 将一个字串转换成小写形式
CharNext 返回一个指针,指向某个字串的下一个字符
CharPrev 与 CharNext 类似,只是这个函数接收的是一个DBCS字串中前一个字符的位置
CharUpper 将一个字串转换成大写形式
CharUpperBuff 将一个字串转换成大写形式
CompareString 根据用于特定“地方”环境的文本对比设置,对两个字串进行比较
CreateIconFromResource 根据来自一个资源文件的原始数据,创建一个图标或指针
DeleteAtom 删除指定原子
EndUpdateResource 中止由 BeginUpdateResource 函数启动的一个资源更新过程
EnumProps 对一个窗口的属性进行枚举
EnumResourceLanguages 为一个指定的资源枚举语言
EnumResourceNames 对已装载进来的一个模块中的指定类型的资源进行枚举
EnumResourceTypes 枚举指定可执行文件或DLL中可用的资源类型
_____________________________________________________________
AddAtom
VB声明
Declare Function AddAtom% Lib "kernel32" Alias "AddAtomA" (ByVal lpString As
 String)
说明
为本地原子表添加一个原子
返回值
Integer,如执行成功,返回原子值;零意味着出错
参数表
参数 类型及说明
lpString String,与原子关联在一起的字串,也是原子的名称
注解
无论如何都应对结果进行检查,确保原子成功分配。也要注意原子是不区分大小写的
________________________________________________________________
BeginUpdateResource
VB声明
Declare Function BeginUpdateResource Lib "kernel32" Alias "BeginUpdateResour
ceA" (ByVal pFileName As String, ByVal bDeleteExistingResources As Long) As 
Long
说明
用于启动在一个可执行文件中更新资源的进程
返回值
Long,返回由UpdateResource函数用于更新文件资源的一个句柄
参数表
参数 类型及说明
pFileName String,指定可执行文件或DLL的名字,将要对它的资源进行更新。调用这个
函数的时候,文件绝对不能执行
bDeleteExistingResources Long,TRUE(非零)表示删除文件中当前所有资源。如为F
ALSE,则只改变在UpdateResource调用期间指定的现有资源
适用平台
Windows NT
注解
为了对执行文件或DLL中的资源进行更新,可以首先调用BeginUpdateResource函数,然
后为准备修改的每个资源都调用一次UpdateResource,最后用EndUpdateResource关闭资
源,以便结束更新操作
______________________________________________________________
CharLower
VB声明
Declare Function CharLower Lib "user32" Alias "CharLowerA" (ByVal lpsz As St
ring) As String
说明
将一个字串转换成小写形式——以当前的“地方”设置或语言驱动程序为基础
返回值
Long,如转换的是一个字串,那么返回值没有任何意义。如转换的是单个字符,则返回
值是变成小写的字符
参数表
参数 类型及说明
lpsz String,指定要转换成小写形式的字串。字串是在当地转换的。如创建一个别名,
并采用Long参数,则lpsz的低16位就可以是要转换成小写形式的单个字符(高16位此时
必须为0)。在这种情况下,函数的返回值是小写字符的值
注解
VB的LCase与这个函数的功能大致相当
________________________________________________________
CharLowerBuff
VB声明
Declare Function CharLowerBuff Lib "user32" Alias "CharLowerBuffA" (ByVal lp
sz As String, ByVal cchLength As Long) As Long
说明
将一个字串转换成小写形式——以当前的“地方”设置或语言驱动程序为基础。这个函
数能转换指定的字符数,并忽略缓冲区中的任何NULL字符
返回值
Long,已转换的字符数量
参数表
参数 类型及说明
lpsz String,指定一个字串或一个内存块的指针,要把其中的内容转换成小写形式
cchLength Long,要转换的字符数量
_____________________________________________________
CharNext
VB声明
Declare Function CharNext Lib "user32" Alias "CharNextA" (ByVal lpsz As Stri
ng) As String
说明
返回一个指针,指向某个字串的下一个字符。在双字节字符集中(比如中文字符集),
每个字符都可能占据一个或两个字节的空间,所以倘若一个字符并非肯定指向下一个字
符,就要在位置的基础上加1
在VB里使用
在Win16下,利用这个函数,可以获取内存中某个字串的地址。而在Win32环境中,它取
回的是字串一个临时副本的地址——VB将一个内部Unicode字串转换成ANSI格式,以便在
DLL调用中使用的时候,就会创建这样的一个字串副本。所以这个值(以及整个函数)对
在Win32环境中工作的VB程序员来说是没有意义的
_______________________________________________
CharPrev
VB声明
Declare Function CharPrev Lib "user32" Alias "CharPrevA" (ByVal lpszStart As
 String, ByVal lpszCurrent As String) As String
说明
与CharNext类似,只是这个函数接收的是一个DBCS字串中前一个字符的位置
在VB里使用
参考CharNext函数
________________________
CharUpper
VB声明
Declare Function CharUpper Lib "user32" Alias "CharUpperA" (ByVal lpsz As St
ring) As String
说明
将一个字串转换成大写形式——以当前的“地方”设置或语言驱动程序为基础
返回值
Long,如转换的是一个字串,那么返回值没有任何意义。如转换的是单个字符,则返回
值是变成大写的字符
参数表
参数 类型及说明
lpsz String,指定要转换成大写形式的字串。字串是在当地转换的。如创建一个别名,
并采用Long参数,则lpsz的低16位就可以是要转换成大写形式的单个字符(高16位此时
必须为0)。在这种情况下,函数的返回值是大写字符的值
注解
VB的UCase与这个函数的功能大致相当
___________________________________
CharUpperBuff
VB声明
Declare Function CharUpperBuff Lib "user32" Alias "CharUpperBuffA" (ByVal lp
sz As String, ByVal cchLength As Long) As Long
说明
将一个字串转换成大写形式——以当前的“地方”设置或语言驱动程序为基础。这个函
数能转换指定的字符数,并忽略缓冲区中的任何NULL字符
返回值
Long,已转换的字符数量
参数表
参数 类型及说明
lpsz String,指定一个字串或一个内存块的指针,要把其中的内容转换成大写形式
cchLength Long,要转换的字符数量
_______________________________________________
CompareString
VB声明
Declare Function CompareString Lib "kernel32" Alias "CompareStringA" (ByVal 
Locale As Long, ByVal dwCmpFlags As Long, ByVal lpString1 As String, ByVal c
chCount1 As Long, ByVal lpString2 As String, ByVal cchCount2 As Long) As Lon
g
说明
根据用于特定“地方”环境的文本对比设置,对两个字串进行比较
返回值
Long,如lpString1<lpString2,返回1;如相等,返回2;如lpString1>lpString2,则
返回3。会设置GetLastError
参数表
参数 类型及说明
Locale Long,比较进行时的一个“地方”标识符
dwCmpFlags Long,带 NORM_??? 前缀的一个或多个常数,它们定义了象“忽略大小写”
这样的一些选项
lpString1 String,要比较的第一个字串
cchCount1 Long,以字节为单位指定字串长度(如果是DBCS字串,则没有字符)。如设
为-1,表示进行自动计算(以NULL中止字符为准)
lpString2 String,要比较的第二个字串
cchCount2 Long,第二个字串的长度(参考 cchCount1 参数说明)
注解
这个函数进行的比较要以特定的语言环境为基础,并不严格按照字符值进行比较
Top
_______________________________________
CreateIconFromResource, CreateIconFromResourceEx
VB声明
Declare Function CreateIconFromResource& Lib "user32" (presbits As Byte, ByV
al dwResSize As Long, ByVal fIcon As Long, ByVal dwVer As Long)
Declare Function CreateIconFromResourceEx Lib "user32" (presbits As Byte, By
Val dwResSize As Long, ByVal fIcon As Long, ByVal dwVer As Long, ByVal cxDes
ired As Long, ByVal cyDesired As Long, ByVal uFlags As Long) As Long
说明
根据来自一个资源文件的原始数据,创建一个图标或指针
返回值
Long,返回新建图标或指针的句柄。零表示出错。会设置GetLastError
参数表
参数 类型及说明
presbits Byte,指定一个缓冲区的头一个字符。该缓冲区包含了原始的资源数据。可变
成 ByVal As Long,以便传递包含了图标数据的一个内存块的地址
dwResSize Long,指定图标数据的长度
fIcon Long,TRUE(非零)表示创建一个图标;零创建一个指针
dwVer Long,&H20000& 表示创建一个 Windows 2.x 图标。&H30000&则创建 Win32 和 
Win3.x 图标
cxDesired,cyDesired Long,仅适用于 CreateIconFromResourceEx。指定要求的图标或
鼠标指针宽度及高度。如设为零,表示使用由 GetSystemMetrics 函数返回的标准值
uFlags Long,仅适用于 CreateIconFromResourceEx。指定下述某个常数:
LR_DEFAULTCOLOR 使用对象的默认颜色格式
LR_LOADREALSIZE 使用在数据流中由数据结构中定义的尺寸
LR_MONOCHROME 强制对象进入单色模式
注解
LoadResource 和 LookupIconIdFromDirectoryEx 能够获得指向原始资源数据的一个指

Top
_________________________________________
DeleteAtom
VB声明
Declare Function DeleteAtom% Lib "kernel32" (ByVal nAtom As Integer)
说明
删除指定原子
返回值
Integer,零表示成功;如失败,返回原子编号
参数表
参数 类型及说明
nAtom Integer,要删除的原子编号
注解
如原子已被分配多次,那么除非这个函数也调用了同样多的次数,否则原子不会实际删
除。Windows 为每个原子都维护着一个索引计数
Top
___________________________________________
EndUpdateResource
VB声明
Declare Function EndUpdateResource Lib "kernel32" Alias "EndUpdateResourceA"
 (ByVal hUpdate As Long, ByVal fDiscard As Long) As Long
说明
中止由 BeginUpdateResource 函数启动的一个资源更新过程
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hUpdate Long,由 BeginUpdateResource 函数返回的句柄
fDiscard Long,TRUE(非零)表示忽略自上一次调用 BeginUpdateResource 函数以来
由 UpdateResource 函数作出的所有改动。如为零,表示由 UpdateResource 调用作出
的改动会写入文件
适用平台
Windows NT
注解
参考 BeginUpdateResource 函数
Top
_______________________________________
EnumProps, EnumPropsEx
VB声明
Declare Function EnumProps& Lib "user32" Alias "EnumPropsA" (ByVal hWnd As L
ong, ByVal lpEnumFunc As Long)
Declare Function EnumPropsEx& Lib "user32" Alias "EnumPropsExA" (ByVal hWnd 
As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long)
说明
对一个窗口的属性进行枚举
返回值
Long,如没有属性枚举出来,则为1;否则返回由回调函数设置的上一个值
参数表
参数 类型及说明
hWnd Long,指定一个窗口的句柄,将要对该窗口的属性进行枚举
lpEnumFunc Long,指定用 AddressOf 操作符(VB5和更高版本)获取的函数地址
lParam Long,仅适用于 EnumPropsEx,这是一个用户自定义的值
注解
针对 EnumProps,回调函数应象下面这样定义:
Public Function EnumPropCallback (ByVal hwnd&, ByVal lpString&, ByVal hData&
) as Long
针对 EnumPropsEx,则象下面这样定义:
Public Function EnumPropCallback (ByVal hwnd&, ByVal lpString&, ByVal hData&
, ByVal lpParam&) as Long
hWnd 代表 EnumProps 函数的 hWnd 参数
HData 是与属性关联在一起的数据句柄或者值
lpParam 是传递给 EnumPropsEx 函数的值
在回调函数或事件期间,不要执行 DoEvents
在回调函数或事件期间,不要试图删除除正在枚举以外的其他任何一个属性
在回调函数或事件期间,不要添加属性
Top
_________________________________________
EnumResourceLanguages
VB声明
Declare Function EnumResourceLanguages Lib "kernel32" Alias "EnumResourceLan
guagesA" (ByVal hModule As Long, ByVal lpType As String, ByVal lpName As Str
ing, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
说明
为一个指定的资源枚举语言
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hModule Long,包含了一个资源的模块。通常用 LoadLibrary 或 LoadLibraryEx 函数
获得
lpType String,指定一种资源类型。参考资源类型表
lpName String,指定资源的标识符
lpEnumFunc Long,指定一个枚举函数的地址,它是用 AddressOf 操作符取回的(VB5或
更高版本)
lParam Long,任何用户自定义值
注解
在一个文件的资源部分,有可能同时为多种语言包含了资源。如存在用于多种语言的一
个资源,则可用这个函数枚举出它适用的所有语言
对回调函数的定义如下:
Public Function ResourceLangCallback (ByVal hModule&, ByVal lpType&, ByVal l
pName&, ByVal ival%, ByVal lParam&) As Long
如返回TRUE,表示继续枚举过程;零则将其中止
Top
___________________________________________________
EnumResourceTypes
VB声明
Declare Function EnumResourceTypes Lib "kernel32" Alias "EnumResourceTypesA"
 (ByVal hModule As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As 
Long
说明
枚举指定可执行文件或DLL中可用的资源类型
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hModule Long,包含了一个资源的模块。通常用 LoadLibrary 或 LoadLibraryEx 函数
获得
lpEnumFunc Long,指定一个枚举函数的地址,它是用 AddressOf 操作符取回的(VB5或
更高版本)
lParam Long,任何用户自定义值
注解
对回调函数的定义如下:
Public Function ResourceTypesCallback (ByVal hModule&, ByVal lpType&, ByVal 
lParam&) As Long
如返回TRUE,表示继续枚举过程;零则将其中止
Top







     又臭,又硬。
           小石头

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.233.140]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:199.148毫秒