VS获取工程版本信息,AxtiveX或者OCX的版本取得
来源:互联网 发布:php游戏网站源码 编辑:程序博客网 时间:2024/06/06 09:20
VS获取工程版本信息
貌似用以下2个方法可以取得当前工程的版本信息
1.代码如下所示:
#pragma comment(lib, "Version.lib ")
TCHAR szFullPath[MAX_PATH];
DWORD dwVerInfoSize = 0;
DWORD dwVerHnd;
VS_FIXEDFILEINFO * pFileInfo;
GetModuleFileName(NULL, szFullPath, sizeof(szFullPath));
dwVerInfoSize = GetFileVersionInfoSize(szFullPath, &dwVerHnd);
if (dwVerInfoSize)
{
// If we were able to get the information, process it:
HANDLE hMem;
LPVOID lpvMem;
unsigned int uInfoSize = 0;
hMem = GlobalAlloc(GMEM_MOVEABLE, dwVerInfoSize);
lpvMem = GlobalLock(hMem);
GetFileVersionInfo(szFullPath, dwVerHnd, dwVerInfoSize, lpvMem);
::VerQueryValue(lpvMem, (LPTSTR)_T( "\\ "), (void**)&pFileInfo, &uInfoSize);
WORD m_nProdVersion[4];
// Product version from the FILEVERSION of the version info resource
m_nProdVersion[0] = HIWORD(pFileInfo-> dwProductVersionMS);
m_nProdVersion[1] = LOWORD(pFileInfo-> dwProductVersionMS);
m_nProdVersion[2] = HIWORD(pFileInfo-> dwProductVersionLS);
m_nProdVersion[3] = LOWORD(pFileInfo-> dwProductVersionLS);
CString strVersion ;
strVersion.Format(_T( "The file 's version : %d.%d.%d.%d "),m_nProdVersion[0],
m_nProdVersion[1],m_nProdVersion[2],m_nProdVersion[3]);
GlobalUnlock(hMem);
GlobalFree(hMem);
AfxMessageBox(strVersion);
}
2.如果对于像AxtiveX或者OCX的版本取得,如果使用上面的办法,则取得很有可能取得是当前使用的IE
的版本信息。所以这个时候可以采用下面的方法,但是需要注意下面GetModuleHandle函数的参数就应该是
使用的DLL或者OCX的名字。
HMODULE hModule;
HRSRC hRsrc;
HGLOBAL hGlobal;
DWORD ver1, ver2, ver3, ver4;
struct VS_VERSIONINFO {
WORD wLength;
WORD wValueLength;
WORD wType;
WCHAR szKey[16];
WORD Padding1[1];
VS_FIXEDFILEINFO Value;
// WORD Padding2[];
// WORD Children[];
} *pData;
ver1 = ver2 = ver3 = ver4 = 0;
hModule = GetModuleHandle("XXXXX.ocx");
if ((hRsrc = FindResource(hModule,(LPCTSTR)VS_VERSION_INFO,RT_VERSION))==NULL) {
MessageBox(NULL,"FindResource!","ver",0);
return ;
}
if ((hGlobal = LoadResource(hModule,hRsrc))==NULL) {
MessageBox(NULL,"LoadResource!","ver",0);
return ;
}
pData = (VS_VERSIONINFO*)LockResource(hGlobal);
ver1 = pData->Value.dwFileVersionMS>>16;
ver2 = pData->Value.dwFileVersionMS&0xffff;
ver3 = pData->Value.dwFileVersionLS>>16;
ver4 = pData->Value.dwFileVersionLS&0xffff;
TCHAR szVersion[MAX_LOADSTRING];
wsprintf(szVersion,"Version %d.%d.%d.%d",ver1,ver2,ver3,ver4);
- VS获取工程版本信息,AxtiveX或者OCX的版本取得
- 获取APP的版本信息或者UUID
- 获取EXE或者DLL的版本信息
- 获取文件或者动态库版本信息
- vs下取得资源文件中的版本信息
- [iOS]获取当前项目工程的名称版本等信息
- 取得APP/LIB版本信息的方法
- 获取文件的版本信息
- VS低版本怎么打开高版本的工程
- 取得OS的版本
- 取得操作系统的版本
- 取得ie详细版本信息.及其它版本信息的两种方法.
- 获取版本信息
- 获取.NET版本信息。
- 获取文件版本信息
- 获取应用程序版本信息
- 获取软件版本信息
- 获取文件版本信息
- Android基本控件 - Button和ImageButton
- Android生成签名文件并用其对apk文件进行签名(Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]错误完美解决)
- 从零迈向iOS--新手篇
- Eclipse新建Activity并启用(二):启用新建Activity
- 远程调用原理与对比RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB
- VS获取工程版本信息,AxtiveX或者OCX的版本取得
- 利用JS提交表单的几种方法和验证
- centos上传或下载文件
- java获取当前时间
- Android初试--Android中的文件操作之ROM操作(1)
- activiti 配置(一)
- 极光推送接入-客户端
- 非常好用的Xcode插件(持续更新)
- as导入github项目