#include <Windows.h>
#pragma comment(lib,"Version.lib")
BOOLEAN CopyVersionInfo(LPCSTR SrcFile, LPCSTR DstFile)
{
BOOLEAN Rv = FALSE;
PVOID VersionInfo;
DWORD VersionInfoSize;
HANDLE hUpdate = NULL;
VersionInfoSize = GetFileVersionInfoSizeA(SrcFile, NULL);
if (VersionInfoSize == 0)
return FALSE;
VersionInfo = LocalAlloc(LPTR, VersionInfoSize);
if (VersionInfo == NULL)
return FALSE;
do
{
if (GetFileVersionInfoA(SrcFile, 0, VersionInfoSize, VersionInfo) == FALSE)
break;
hUpdate = BeginUpdateResourceA(DstFile, FALSE);
if (hUpdate == NULL)
break;
if (UpdateResourceA(hUpdate, RT_VERSION, (LPCSTR)1, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US),
VersionInfo, VersionInfoSize) == FALSE)
break;
if (EndUpdateResourceA(hUpdate, FALSE) == FALSE)
break;
hUpdate = NULL;
Rv = TRUE;
} while (0);
if (hUpdate)
EndUpdateResourceA(hUpdate, TRUE);
LocalFree(VersionInfo);
return Rv;
}
int main(int argc, char* argv[])
{
CopyVersionInfo("c:\\windows\\system32\\ntdll.dll", "D:\\muma.dll");
return 1;
}
拷贝文件版本信息
由
·
发表回复