点击或拖拽改变大小

Functions.MemChr 方法

X#
获取指向内存缓冲区中匹配字符值的指针。

命名空间:  XSharp.RT
程序集:  XSharp.RT (在 XSharp.RT.dll 中) 版本:2.22 GA
语法
 FUNCTION MemChr(
	ptrBuffer AS IntPtr,
	dwChar AS BYTE,
	dwCount AS DWORD
) AS IntPtr
查看代码

参数

ptrBuffer
类型:IntPtr
要检查的内存缓冲区的指针。
dwChar
类型:Byte
要匹配的字符的字表示。
dwCount
类型:UInt32
要检查的 ptrBuffer 中的字符数。

返回值

类型:IntPtr
指向 dwCharptrBufferdwCount 字符中的第一次出现的指针。
如果未匹配 dwChar,MemChr() 将返回 NULL_PTR。
备注
示例
此示例在 PSZ 上使用 MemChr():
X#
1FUNCTION FindChar() AS VOID
2    LOCAL pszC1 := "ABCDEF" AS PSZ
3    ? MemChr(pszC1, ASC("A"), 6)            // 指针
4    ? MemChr(pszC1, ASC("B"), 6)            // 指针
5    ? MemChr(pszC1, ASC("B"), 1)
6    // NULL_PTR: ASC("B") 不在
7    // PSZ 的前 "1" 个字符中
下一个示例在分配的块上使用 MemChr():
X#
 1FUNCTION FindChar2() AS VOID
 2    LOCAL ptrBuff := MemAlloc(10) AS PTR
 3    IF ptrBuff != NULL_PTR
 4        // 在前 10 个字节写入 68
 5        MemSet(ptrBuff, 68, 10)
 6        // 用 67 覆盖前 5 个字节
 7        MemSet(ptrBuff, 67, 5)
 8        ? MemChr(ptrBuff, 68, 10)            //3CEF:07DD
 9        ? MemChr(ptrBuff, 67, 10)            //3CEF:07D8
10    ENDIF
参见