通过DMA写入指定地址的字符串Addr - DmaWriteStringAddr
函数简介
通过 DMA 写入指定地址的字符串。使用直接地址而不是 CE 格式。(高级版功能,普通版无法使用)
接口名称
DmaWriteStringAddr
DLL调用
int32_t OLA_CALL_TYPE DmaWriteStringAddr(int64_t instance, int64_t deviceId, int32_t pid, int64_t addr, int32_t type, OLA_STRING_INPUT value);
参数定义:
instance(长整型数): OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。deviceId(长整型数): 设备IDpid(整型数): 进程 PIDaddr(长整型数): 直接内存地址type(整型数): 字符串类型value(字符串): 要写入的字符串
示例:
// 写入 ASCII 字符串
int32_t result = DmaWriteStringAddr(instance, deviceId, 1234, 0x400000, 0, "Hello");
if (result == 1) {
printf("ASCII字符串写入成功\n");
}
// 写入 Unicode 字符串
int32_t result2 = DmaWriteStringAddr(instance, deviceId, 1234, 0x400010, 1, "World");
if (result2 == 1) {
printf("Unicode字符串写入成功\n");
}
// 写入 UTF8 字符串
int32_t result3 = DmaWriteStringAddr(instance, deviceId, 1234, 0x400020, 2, "你好");
if (result3 == 1) {
printf("UTF8字符串写入成功\n");
}
返回值
整型数:
- 1: 成功
- 0: 失败
参数说明
type(字符串类型):
- 0: Ascii 字符串
- 1: Unicode 字符串
- 2: UTF8 字符串
value(字符串值):
- 要写入的字符串内容
- 必须与指定的字符串类型匹配
addr(地址):
- 直接的十六进制地址
- 例如:
0x400000
应用场景
- 修改游戏中的文本
- 内存修改
- 字符串替换
相关接口
- DmaWriteString - CE 格式地址写入
- DmaWriteData - 写入二进制数据
- DmaReadString - 读取字符串
