C++如何通过代码自定义输出的exe(可执行文件)名称,不是使用链接器修改
#include <io.h>
#include
std::string GetPEResource(const char* exepath, const char* type,
const char* name, int language = 0)
{
std::string r = "";
if (!exepath)
return r;
//判定文件是否存在
if (_access(exepath, 0) != 0)
return r;
//加载可执行文件
HMODULE hexe = LoadLibrary(exepath);
if (!hexe)
return r;
//查找资源
HRSRC src = FindResourceEx(hexe, type, name, language);
if (src)
{
HGLOBAL glb = LoadResource(hexe, src);
int sz = SizeofResource(hexe, src);
r = std::string((char *)LockResource(glb), sz);
UnlockResource(glb);
FreeResource(glb);
}
//释放可执行文件
FreeLibrary(hexe);
return r; //返回一个完整的、标准的版本信息数据
}
在项目、属性、生成事件、生成后事件、命令行:填写一个将原来输出的exe文件名改为你想要的exe文件名的bat