是否可以使用 Visual Studio 6.0(VC98 编译器)构建使用清单指定依赖关系的应用程序?
Posted
技术标签:
【中文标题】是否可以使用 Visual Studio 6.0(VC98 编译器)构建使用清单指定依赖关系的应用程序?【英文标题】:Is it possible to build applications that specify dependencies using manifests using Visual Studio 6.0 (VC98 compiler)? 【发布时间】:2016-02-09 03:43:01 【问题描述】:我正在尝试在命令行(不是 IDE)上移植当前使用 VC98 编译器构建的 win32 应用程序。
我希望为此应用程序启用视觉样式,以便应用程序获得 Windows XP 附带的新主题控件。
为此我学到的方法是使用清单并指定 ComCtl32.dll 的版本 6。
是否可以在我的应用程序中执行此操作而不升级编译器?
也就是说,我们可以使用 Visual Studio 6.0(命令行构建界面)来为应用程序指定清单文件吗?
【问题讨论】:
不确定是否可以通过命令行选项执行此操作,但您可能可以将清单嵌入资源文件中,如 MSDN 上的 both pages 中所述,用于启用视觉样式。 @andlabs 可以从命令行完成 【参考方案1】:清单只是一种资源。编译资源并将其链接到您的可执行文件,就像任何其他资源一样。
确实,您不需要借助命令行来执行此操作。您可以从 IDE 链接对话框资源、图标资源等。您可以对清单资源执行相同操作。
这里描述了嵌入资源的各种选项: How to embed a manifest in an assembly: let me count the ways...
【讨论】:
这是我阅读问题后的第一个想法。我唯一担心的是旧的 VC6 工具链缺乏对嵌入清单的支持。例如,rc.exe 的版本甚至不知道清单是什么。您可能可以将清单嵌入为二进制 blob,但这并不像博客文章描述的那么简单。或者,您可以使用支持清单的较新版本的 mt.exe,并将其作为构建后事件运行。 @Cody 这只是一个文本文件。所有版本的rc都可以编译。【参考方案2】:以下在 VS6 上对我有用:
只需将其放入您的 .rc 文件中:
1 RT_MANIFEST "manifest.xml"
或者如果RT_MANIFEST
没有定义:
1 24 "manifest.xml"
manifest.xml
是清单文件,在我的例子中是这样的:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly
xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
processorArchitecture="x86"
version="1.0.0.0"
type="win32"
name="somename.exe"/>
<description>Some description</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
comctrl32 6.0 的重要部分是<dependency>
部分。 <trustinfo>
现在也或多或少需要。
【讨论】:
以上是关于是否可以使用 Visual Studio 6.0(VC98 编译器)构建使用清单指定依赖关系的应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
从 Visual Studio C++ 6.0 到 VS 2008?
Visual c++ 6.0 应用程序大小大于 Visual Studio 2010 应用程序大小