Windows 7 获取Lazarus项目中的应用程序版本号不起作用

Windows 7 获取Lazarus项目中的应用程序版本号不起作用,windows-7,version,freepascal,lazarus,Windows 7,Version,Freepascal,Lazarus,我使用以下单元尝试读取Lazarus项目中的应用程序版本号,但GetProductVersion始终返回0.0.0.0 我在Windows7上使用Lazarus1.2.4和FPC2.6.4 当我编译、链接并运行应用程序时,我没有收到任何错误,因此看起来该单元包含正确 我不知道还能在哪里找到不起作用的东西。有人能给我一些建议吗?我终于弄清了真相。。这只是一个小发现,可能会帮助一些人,所以我会张贴我做错了什么 Lazarus项目中实际上有三个不同的版本,它们都位于项目选项->版本信息中: 版本编号

我使用以下单元尝试读取Lazarus项目中的应用程序版本号,但GetProductVersion始终返回0.0.0.0

我在Windows7上使用Lazarus1.2.4和FPC2.6.4

当我编译、链接并运行应用程序时,我没有收到任何错误,因此看起来该单元包含正确


我不知道还能在哪里找到不起作用的东西。有人能给我一些建议吗?

我终于弄清了真相。。这只是一个小发现,可能会帮助一些人,所以我会张贴我做错了什么

Lazarus项目中实际上有三个不同的版本,它们都位于项目选项->版本信息中:

  • 版本编号,在它自己的小盒子里
  • ProductVersion,位于“其他信息”中
  • 文件版本,位于“其他信息”中
  • 当你读到迈克的描述时,这其实很明显,但我并没有看到树木的树木

    只要确保您正在设置一个值,就可以使用Mike的函数读取正确的值


    (上面链接中的讨论还解释了使用FileVersion和ProductVersion之间的区别(显然,Windows文档指定Product Version表示应该与dll一起使用的产品版本。)

    您可能还想使用Mike Thompson的单元。它在各种Linux发行版(使用Ubuntu、SuSe和Raspbian进行测试)、Windows(从2000年到Win 7进行测试)和Mac OS X(从10.4到10.10进行测试)上运行良好@jwdietrich这就是我正在使用的代码-看起来我可能发布了错误的链接。。我明天会修复帖子。@abelisto我会看一看-原生方式看起来更安全。@jwdietrich我最终得到了它。。我显然看不清楚,在项目选项中设置了FileVersion,并在代码中读取FileVersion。谢谢澄清把这个给我。