【这是和谐向fpc官方提交的】lazarus中构建带VersionInfo的windows程序(win32/win64)的exe文件, 在windows查看文件属性 VersionInfo 字符串条目不能显示完整的unicode字符串。
【2025-01-09上传的lazarus36绿色版是修复后的版本】
修复方法:
1、打开fpcsrc/packages/fcl-res/src/versionresource.pp b/packages/fcl-res/src/versionresource.pp
找到procedure TVersionResource.WriteStringEntry(const aKey, aValue: string);
将
block.vallength:=length(aValue)+1;
改为:
block.vallength:=length(Widestring(aValue))+1;
完整的如下:
procedure TVersionResource.WriteStringEntry(const aKey, aValue: string); var block : TVerBlockHeader; before: int64; begin before:=RawData.Position; block.length:=0; block.vallength:=length(Widestring(aValue))+1; block.valtype:=1; block.key:=aKey; {$IFDEF ENDIAN_BIG} block.vallength:=SwapEndian(block.vallength); block.valtype:=SwapEndian(block.valtype); {$ENDIF} RawData.WriteBuffer(block,6); WriteWideString(block.key); AlignDWordWriting; WriteWideString(aValue); AlignDWordWriting; WriteFixedBlockLength(before); end;
2、重新编译fpc、lazarus(建议用fpcupdeluxe)和应用
如果用fpcupdeluxe请按以下步骤操作,一定要勾上FPC/Lazarus rebuild only
修复后:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2023-01-09 lazarus linux/windows简单实用的三层控件QFRemoteDataSet