我有一个.manifest
文件,该文件与.exe
程序文件链接,以便在打开时请求管理员权限。现在它是一个名为program_name.exe.manifest
的单独文件,它与program_name.exe
是同一个文件夹。有没有什么方法可以将清单文件嵌入到.exe
文件中,这样它就可以是一个文件而不是两个文件。
BTW程序是使用C ++创建的
答案 0 :(得分:0)
如果您正在使用Windows CL,例如powershell,请尝试
program_name.exe –manifest program_name.exe.manifest -outputresource:program_name.exe;1
这应该可以解决问题。
答案 1 :(得分:0)
是。将清单声明为资源,然后构建资源对象文件并将其链接到您的exe。
在resource.rc
文件中,定义清单资源,如下所示:
IDR_RT_MANIFEST1 RT_MANIFEST "program_name.exe.manifest"
在resource.h
文件中,使用值1
#define IDR_RT_MANIFEST1 1
使用windres构建资源文件:windres resource.rc -o resource.o
在构建项目时链接资源:-l resource.o
............................................... ..........................
如果您使用的是Visual Studio ,则不需要明确构建它,但有两个选项需要事先设置:
1)Project > Project_Name Properties > Configuration Properties > Linker > Manifest File -> Generate Manifest
设置为No
2)Project > Project_Name Properties > Configuration Properties > Manifest Tool > Embed Manifest
设置为Yes
还将清单文件作为现有项目添加到项目中。