点击或拖拽改变大小

Functions.MemByte 方法

X#
获取指向内存缓冲区中字节的指针。

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

参数

ptrBuffer
类型:IntPtr
要检查的内存缓冲区的指针。
bChar
类型:Byte
要匹配的字节值。
dwCount
类型:UInt32
要检查的 ptrBuffer 中的字节数。

返回值

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