|
用VerQueryValue得到文件信息的问题
[复制链接]
TCHAR *szver=NULL;
dwlen=GetFileVersionInfoSize(szpath[k],&dwtemp);
szver=new TCHAR[dwlen];
rt1=GetFileVersionInfo(szpath[k],0,dwlen +1,szver);//这里rt1==1了
DWORD cbTranslate = 0;
VerQueryValue(szver, TEXT("\\VarFileInfo\\Translation")(LPVOID*&lpTranslate,
(PUINT)&cbTranslate);
wsprintf( SubBlock,TEXT("\\StringFileInfo\\%04x%04x\\FileVersion"),
lpTranslate->wLanguage,
lpTranslate->wCodePage);
rt1=VerQueryValue(szver,SubBlock,(void**)&pTmp,(PUINT)&cbTranslate);//这里rt1==0 pTmp为空 SubBlock没有问题。
运行程序时,65个文件,有15个有上面这种情况。这15个的version肯定是存在的。(不存在GetFileVersionInfoSize返回0了)就是不知道为什么。GetFileVersionInfoSize和GetFileVersionInfo成功了,VerQueryValue却失败了。而且其它文件的version信息都正常显示。
大大们怎么解决啊?
|
|