如题。实际问题是,我在程序中加了个“Help”窗口,中有个Static Text控件显示版本号,每次都是在属性页面手动更新的。现在想在程序启动时检查当前程序是哪个版本,而此时对话框还没有实例化,这样怎么能读到Static Text控件的值呢?万分感谢。
解决方案 »
- 我用MFC写的USB接收USB接口发送来的程序怎么接收不了数据啊?
- 请教WindowProc窗口的消息问题?
- 如何贴图
- 有谁知道怎样用vc做类似于photoshop的界面,就是选中view的一个对象,立刻就能在旁边的对话框中显示该对象的属性,要用怎样的消息机制?谢谢
- 在输入框中输入内容,进行合法行检测后,如果不合法如何让焦点返回原来的编辑框?
- 对话框中CButton发送的WM_COMMAND消息在CXXXView中能否处理?如何处理
- 求救:关于PostThreadMessage,全局钩子的问题,弄了一天都没懂(附代码)。
- 关于CStringArray或CWordArray之类的问题,帮帮忙吧!
- vc环境下用malloc()函数如何用
- 请问如何画平滑线
- 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中看看