2017-05-17 169 views
1

我有一個文件,它與.exe程序文件相鏈接,以便在打開時請求管理員權限。現在它是一個單獨的文件,名爲program_name.exe.manifest,它與program_name.exe是相同的文件夾。有什麼方法可以將清單文件嵌入到.exe文件中,以便它可以是一個文件而不是兩個文件。將清單嵌入到exe文件中

BTW程序是用C++

回答

0

創建如果您使用的是Windows CL一樣,PowerShell中,嘗試

program_name.exe –manifest program_name.exe.manifest -outputresource:program_name.exe;1

這應該做的伎倆。

+0

** C:\ WINDOWS \ system32> main.exe -manifest main.exe.manifest -outputsource:main.exe; 1 ** 'main.exe'不被識別爲內部或外部命令, 可操作程序或批處理文件。 – Mat

+0

您可以嘗試從其中包含.exe的文件夾運行命令,也可以按照此線程更改環境變量以使程序可以從任何文件夾運行http://stackoverflow.com/a/8939956/8021378 –

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,則無需顯式構建它,但也有應預先設置2種選擇:

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

還添加manif est文件作爲現有項目添加到項目中。