请教,如何获得一个对话框资源上文本控件的初始值? 如题。实际问题是,我在程序中加了个“Help”窗口,中有个Static Text控件显示版本号,每次都是在属性页面手动更新的。现在想在程序启动时检查当前程序是哪个版本,而此时对话框还没有实例化,这样怎么能读到Static Text控件的值呢?万分感谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 // 获取应用版本BOOL GetVersion( CString& strFileVer, CString& strProductVer ){ TCHAR szFilePath[_MAX_PATH] = {0}; DWORD dwSize = GetModuleFileName(NULL, szFilePath, _MAX_PATH); DWORD dwHandle = 0; dwSize = GetFileVersionInfoSize(szFilePath, &dwHandle); BYTE* pbVersionInfo = new BYTE[dwSize]; if (GetFileVersionInfo(szFilePath, dwHandle, dwSize, pbVersionInfo)) { UINT uLen = 0; VS_FIXEDFILEINFO* vsfi = NULL; VerQueryValue(pbVersionInfo, TEXT("\\"), (void**)&vsfi, &uLen); strFileVer.Format(_T("%u.%u.%u.%u"), HIWORD(vsfi->dwFileVersionMS), LOWORD(vsfi->dwFileVersionMS), HIWORD(vsfi->dwFileVersionLS), LOWORD(vsfi->dwFileVersionLS)); strProductVer.Format(_T("%u.%u.%u.%u"), HIWORD(vsfi->dwProductVersionMS), LOWORD(vsfi->dwProductVersionMS), HIWORD(vsfi->dwProductVersionLS), LOWORD(vsfi->dwProductVersionLS)); delete[] pbVersionInfo; return TRUE; } delete[] pbVersionInfo; return FALSE;}更新版本时,更新资源文件内的Version。Dialog初始化时,调用上面的函数获取版本。 “有个Static Text控件显示版本号”把这个 static 关联为 CString。CVersionDlg dlg;m_Version= dlg.m_Version;不需要 Create 或者 DoModule 赞一个,测试成功;注意的是,连接依赖项要加人Version.lib 不成啊,得到的值是空的。你当前的exe有加入Version资源吗?Resource View中看看 关于TCP收发数据的疑问? 鼠标在程序对应的任务栏图标上右键点击会收到什么消息? 文件后缀问题 怎么把一个工程(里面带有多个对话框)做成DLL,调用后显示主界面? 文件夹名改了以后,工程打不开是怎么回事 请教MsoCommandBar类的问题 如何取得可执行文件的图标?要源代码。 请问在SDI中如何在CMainFrame 中使用View的成员变量??? 如何是好?如何是好?如何是好?如何是好?如何是好?如何是好? 请教为什么我用VC6 ATL模板生成的COM中,不能用CString?在VC6中怎么单步调试COM? OpenGL仿真问题 win7模拟触屏输入的问题
// 获取应用版本
BOOL GetVersion( CString& strFileVer, CString& strProductVer )
{
TCHAR szFilePath[_MAX_PATH] = {0};
DWORD dwSize = GetModuleFileName(NULL, szFilePath, _MAX_PATH);
DWORD dwHandle = 0;
dwSize = GetFileVersionInfoSize(szFilePath, &dwHandle);
BYTE* pbVersionInfo = new BYTE[dwSize];
if (GetFileVersionInfo(szFilePath, dwHandle, dwSize, pbVersionInfo))
{
UINT uLen = 0;
VS_FIXEDFILEINFO* vsfi = NULL; VerQueryValue(pbVersionInfo, TEXT("\\"), (void**)&vsfi, &uLen);
strFileVer.Format(_T("%u.%u.%u.%u"), HIWORD(vsfi->dwFileVersionMS), LOWORD(vsfi->dwFileVersionMS),
HIWORD(vsfi->dwFileVersionLS), LOWORD(vsfi->dwFileVersionLS)); strProductVer.Format(_T("%u.%u.%u.%u"), HIWORD(vsfi->dwProductVersionMS), LOWORD(vsfi->dwProductVersionMS),
HIWORD(vsfi->dwProductVersionLS), LOWORD(vsfi->dwProductVersionLS)); delete[] pbVersionInfo;
return TRUE;
} delete[] pbVersionInfo;
return FALSE;
}
更新版本时,更新资源文件内的Version。
Dialog初始化时,调用上面的函数获取版本。
把这个 static 关联为 CString。
CVersionDlg dlg;
m_Version= dlg.m_Version;
不需要 Create 或者 DoModule
赞一个,测试成功;
注意的是,连接依赖项要加人Version.lib
不成啊,得到的值是空的。
你当前的exe有加入Version资源吗?Resource View中看看