Open itssunyujia opened 2 years ago
把in换成ref
找到 LuaClassWrap.tpl.txt 文件。其中有一句:
if pi ~= 0 then %>, <% end; if parameter.IsOut and parameter.ParameterType.IsByRef then %>out <% elseif parameter.ParameterType.IsByRef then %>ref <% end %><%=LocalName(parameter.Name)%><% end) %> );
修改为:
if pi ~= 0 then %>, <% end; if parameter.IsOut and parameter.ParameterType.IsByRef then %>out <% elseif parameter.IsIn and parameter.ParameterType.IsByRef then %>in <% elseif parameter.ParameterType.IsByRef then %>ref <% end %><%=LocalName(parameter.Name)%><% end) %> );
然后重新生成试试
委托生成文件:LuaDelegateBridge.tpl.txt,可以试着这样修改 修改1: if parameter.IsOut and parameter.ParameterType.IsByRef then %>out <% elseif parameter.ParameterType.IsByRef then %>ref <% end 修改为: if parameter.IsOut and parameter.ParameterType.IsByRef then %>out <% elseif parameter.IsIn and parameter.ParameterType.IsByRef then %>in <% elseif parameter.ParameterType.IsByRef then %>ref <% end 修改2: <%ForEachCsList(parameters, function(parameter, pi) if parameter.IsOut or parameter.ParameterType.IsByRef then %><%=GetCasterStatement(parameter.ParameterType, "errFunc" .. (" + "..out_idx), 'p' .. pi)%>; <% out_idx = out_idx + 1 end end) %> 修改为: <%ForEachCsList(parameters, function(parameter, pi) if parameter.IsOut or (parameter.ParameterType.IsByRef and not parameter.IsIn) then %><%=GetCasterStatement(parameter.ParameterType, "errFunc" .. (" + "..out_idx), 'p' .. pi)%>; <% out_idx = out_idx + 1 end end) %>
1.环境
xlua 版本 v2.1.15 Editor 2021.3.3f1c1
2.复现步骤
b. GenConfig.cs中加入配置
报错指向这一行: TestIn.InClass.InMethod(ref _name);
3.报错文件