我正在使用fasm编写应用程序,并且在确定Windows 8.1及更高版本时遇到问题。函数GetVersionEx
和Version Helper
为我提供Windows 8.正如MSDN所说,我必须通过在Visual Studio中更改清单文件来定位我的应用程序,但我没有使用VS,所以我该怎么办?
答案 0 :(得分:2)
任何允许您将资源链接到已编译的可执行文件的编程环境都可用于创建清单资源。您所要做的就是为您的应用编写一个包含所需XML值的合适.manifest
文件,然后将该文件的内容直接链接到您的应用程序资源中,确保资源类型是24,资源ID是1,2或3(有关何时使用哪个ID的详细信息,请参阅this page)。您不需要使用VisualStudio。
如果出于某种原因,您无法将清单直接链接到应用程序的资源中,您也可以将XML保存到名为<myappname>.exe.manifest
的文件中(其中<myappname>
是实际名称您的EXE文件)并将其放在与您的应用程序相同的文件夹中。这不是表现的首选方法,但确实有效。
话虽如此,您可以使用替代API而不是基于GetVersion/Ex()
或VerifyVersionInfo()
的帮助程序来获取正确的操作系统版本,而无需处理任何表现形式。也就是说,可以使用RtlGetVersion()
,NetServerGetInfo()
和NetWkstaGetInfo()
(并且所有这些都已经过测试,可以在Windows 8.1和10中使用)。
答案 1 :(得分:0)
清单文件是嵌入为Win32资源的XML文件。它也可以是名为your.exe.manifest
的外部文件。在互联网上搜索样本内容的例子。