Open sayysc opened 2 years ago
类型定义:
message tianmo_info { optional int32 id = 1[default = 0]; optional int32 distance = 2[default = 0]; optional uint64 hp = 3[default = 0]; }
测试代码:
local pb = require "pb" pb.option "decode_default_message" pb.option "encode_default_values" pb.option "decode_default_array" local msg = "tianmo_info" local tianmo = { id = 1, distance = 100, hp = 9372260000000000000, } pb.encode(msg, tianmo)
执行出错:
\star_pb.lua:28: integer format error: '9.37226e+18' stack traceback: [C]: in function 'pb.encode' .\star_pb.lua:28: in main chunk [C]: in ?
我追踪到pb.c的代码,lua_tointegerx 返回的是0,转换失败!
请问我该怎么做
Lua只支持有符号64位数,你可以使用字符串"#9...",会自动转成64位数字编码
麻烦问一下。大家取int64 值的时候。如何把表示范围外 按string获取到
类型定义:
测试代码:
执行出错:
\star_pb.lua:28: integer format error: '9.37226e+18' stack traceback: [C]: in function 'pb.encode' .\star_pb.lua:28: in main chunk [C]: in ?
我追踪到pb.c的代码,lua_tointegerx 返回的是0,转换失败!