3

我正在从命令行构建 Delphi 项目并brcc32.exe用于构建.res文件。

我已经添加了一些自定义字符串,.RC所以它看起来像这样。(有一个小的 Delphi5 应用程序可以从模板中准备这个 .RC)

1 VERSIONINFO 
 FILEVERSION 999,0,0,339
FILEOS VOS__WINDOWS32 
FILETYPE VFT_APP 
BEGIN  
 BLOCK "StringFileInfo" 
 BEGIN
  BLOCK "080904E4"
  BEGIN
   VALUE "FileDescription","Debug Build"
   VALUE "FileVersion","999.0.0.339"
   VALUE "LegalCopyright", "HuwCorp Finance Ltd"
   VALUE "Revision","339"
   VALUE "LastChangeRevision","335"
   VALUE "LastChangeDate","2013-06-07"
   VALUE "LastChangeTime","13:17:14"
   VALUE "LastChangeAuthor","foo1234"
   VALUE "BuildDate","12/06/2013"
   VALUE "BuildTime","10:36:59"
  END
 END
 BLOCK "VarFileInfo"
 BEGIN
   VALUE "Translation", 2057, 1252
 END
END

到目前为止一切都很好,但是该BRCC32步骤会生成一个.res看起来像这样的损坏文件(通过资源生成器查看)

  VALUE "LastChangeDate", "2013-06-074\x08\x01LastChangeTime"
  VALUE "LastChangeTime", "13:17:146\x07\x01LastChangeAuthor"
  VALUE "LastChangeAuthor", "foo1234"
  VALUE "BuildDate", "12/06/2013,\x08\x01BuildTime"
  VALUE "BuildTime", "10:36:59D"

确实在构建上单击属性/版本会.exe显示垃圾字符,例如 BuildTime 显示为10:36:59D

谁能建议为什么?

4

1 回答 1

8

StringTable 资源需要以 C 风格的空值终止(即使在使用 Borland 资源编译器时)。

试试这个:

VALUE "FileDescription","Debug Build\0"
VALUE "FileVersion","999.0.0.339\0"
VALUE "LegalCopyright", "HuwCorp Finance Ltd\0"
VALUE "Revision","339\0"
VALUE "LastChangeRevision","335\0"
VALUE "LastChangeDate","2013-06-07\0"
VALUE "LastChangeTime","13:17:14\0"
VALUE "LastChangeAuthor","foo1234\0"
VALUE "BuildDate","12/06/2013\0"
VALUE "BuildTime","10:36:59\0"
于 2013-06-12T10:57:15.490 回答