网友在linux使用fr时发现不能在报表插入QRCode和PDF417等条码,经跟踪发现只需将frxBarcodePDF417.pas第1592行
将
A := TInt(ERROR_LEVEL[errorLevel]);
改为:
A := @(ERROR_LEVEL[errorLevel]);
就可以正常插入QRCode等二维码了,如果你使用过程也遇到同样问题可参考一下。
使用环境:
lazarus 2.3
FPC 3.3.1
CPU:Loongarch64,华为麒麟990
OS:统信专业版,银河麒麟
procedure TfrxBarcodePDF417.CalculateErrorCorrection( dest : integer); var A : TInt; ALength,e,k,t1,t2,t3, LastE : integer; begin if (errorLevel < 0) or ( errorLevel > 8) then errorLevel := 0; {$ifdef linux} A := @(ERROR_LEVEL[errorLevel]); //2023.05.21 LBZ修正QRCode等不能使用的Bug {$else} A := TInt(ERROR_LEVEL[errorLevel]); {$endif} Alength := 2 shl errorLevel; for k := 0 to Alength-1 do codewords[dest + k] := 0; lastE := Alength - 1; for k := 0 to lenCodewords-1 do begin t1 := codewords[k] + codewords[dest]; for e := 0 to lastE do begin t2 := (t1 * A[lastE - e]) mod _MOD; t3 := _MOD - t2; if e = LastE then codewords[dest + e] := t3 mod _MOD else codewords[dest + e] := ((codewords[dest + e + 1]) + t3) mod _MOD; end; end; for k := 0 to Alength- 1 do codewords[dest + k] := (_MOD - codewords[dest + k]) mod _MOD; end;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~