Windows C++ 读取exe文件manifest内容

BOOL CALLBACK EnumResourceNameCallback(HMODULE hModule, LPCTSTR lpType,
    LPWSTR lpName, LONG_PTR lParam)
{
    HRSRC hResInfo = FindResource(hModule, lpName, lpType);
    if (hResInfo) {

        DWORD cbResource = SizeofResource(hModule, hResInfo);

        HGLOBAL hResData = LoadResource(hModule, hResInfo);
        if (hResData) {
            const BYTE* pResource = (const BYTE*)LockResource(hResData);
            std::string manifest = std::string((char*)pResource, cbResource);
            UnlockResource(hResData);
            FreeResource(hResData);
        }
    }
    return TRUE;   // Keep going
}

//调用处:

const TCHAR* pszFileName = L"";
    HMODULE hModule = LoadLibraryEx(pszFileName, NULL, LOAD_LIBRARY_AS_DATAFILE);
    if (hModule) {
        EnumResourceNames(hModule, RT_MANIFEST, EnumResourceNameCallback, NULL);
        FreeLibrary(hModule);
    }

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值