通过DMA写入指定地址的双精度浮点数Addr - DmaWriteDoubleAddr
函数简介
通过 DMA 写入指定地址的双精度浮点数。使用直接地址而不是 CE 格式。(高级版功能,普通版无法使用)
接口名称
DmaWriteDoubleAddr
DLL调用
int32_t OLA_CALL_TYPE DmaWriteDoubleAddr(int64_t instance, int64_t deviceId, int32_t pid, int64_t addr, double double_value);
参数定义:
instance(长整型数): OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。deviceId(长整型数): 设备IDpid(整型数): 进程 PIDaddr(长整型数): 直接内存地址double_value(双精度浮点数): 要写入的浮点数值
示例:
// 写入双精度浮点数
int32_t result = DmaWriteDoubleAddr(instance, deviceId, 1234, 0x400000, 3.141592653589793);
if (result == 1) {
printf("双精度浮点数写入成功\n");
}
// 写入高精度坐标
int32_t result2 = DmaWriteDoubleAddr(instance, deviceId, 1234, 0x400000, 100.123456789);
int32_t result3 = DmaWriteDoubleAddr(instance, deviceId, 1234, 0x400008, 200.987654321);
int32_t result4 = DmaWriteDoubleAddr(instance, deviceId, 1234, 0x400010, 50.555555555);
if (result2 == 1 && result3 == 1 && result4 == 1) {
printf("坐标写入成功\n");
}
返回值
整型数:
- 1: 成功
- 0: 失败
参数说明
double_value(双精度浮点数值):
- 要写入的双精度浮点数
- 范围:±1.7e±308
- 精度:约 15-17 位有效数字
addr(地址):
- 直接的十六进制地址
- 例如:
0x400000
应用场景
- 修改游戏中的高精度浮点数据
- 内存修改
- 精确参数调整
相关接口
- DmaWriteDouble - CE 格式地址写入
- DmaWriteFloatAddr - 写入单精度浮点数
- DmaWriteIntAddr - 写入整数
