从内存地址读取字符串 - GetStringFromPtr
函数简介
从指定内存地址读取字符串,参考windows函数 GetWindowText实现
接口名称
GetStringFromPtr
DLL调用
int GetStringFromPtr(long ptr, LPSTR lpString, int size)
参数定义:
ptr
(长整型数): 字符串内存地址。lpString
(字符串): 接收字符串的缓冲区size
(整数型) : 缓冲区大小,可以通过 GetStringSize接口读取字符串大小,size要+1用于存储终止符'\0'
返回值:
整型数 : 成功返回字符串实际长度,失败返回0
示例:
long strPtr = 0x12345678; // 示例内存地址
int size=ola.GetStringSize(strPtr)+1;+1 用于存储终止符 '\0'
char* buffer = new char[size]{0}; // 使用 new[] 动态分配
int length = ola.GetStringFromPtr(strPtr, buffer, sizeof(buffer));
if (length > 0) {
printf("读取到的字符串: %s\n", buffer);
} else {
printf("读取失败\n");
}
备注
- 使用此函数时需要确保传入的内存地址有效且可访问
- 建议在使用前先通过GetStringSize接口获取实际需要的缓冲区大小
- 缓冲区大小不足可能导致字符串截断