WriteProfileBinary

lucyke 2003-12-14 08:05:46
谁能给我讲一下关于 GetProfileBinary/WriteProfileBinary函数的用法及功能?

...全文
194 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liujianguangljg 2003-12-14
  • 打赏
  • 举报
回复
up
liu_swallow 2003-12-14
  • 打赏
  • 举报
回复


如果要使你的程序对用户友好,那么存储用户设置以及程序运行的首选项是很重要的。目前比较通行的做法是将这些信息存储在注册表中。这也是Windows 徽标(Logo)程序的要求。
在注册表中存储用户程序信息的原理很简单,无非是保证应用程序知道要将信息存储在注册表的什么地方,当需要这些信息时能通过MFC函数对信息进行读写操作。按照规范,应用程序首选和设置信息应该保持和存储在注册表的HKEY_CURRENT_USER\Software键中。这个规范还包括在这个路径中使用下层子键保存软件开发公司的名称、应用程序名称,然后可以添加分类子键和值来存储其它一些设置。例如:HKEY_CURRENT_USER\Software\VCKBASEStudio\DeskShow下保存着VCKBASE工作室开发的DeskShow程序信息。具体代码很简单。如要设置公司名称,则可以在InitInstance()中用CWinApp::SetRegistryKey()函数。例如:

BOOL MyApp::InitInstance()
{
SetRegistryKey(_T("VCKBASEStudio "));
……
}

如果你希望下一个子键是工程的名字,那么什么代码都不用写就可以读写注册表存取工程名,MFC会将工程名作为默认的设置。如果因为别的原因你想要修改工程名,用下面的代码很容易实现。

free((void *)m_pszProfileName);
m_pszProfileName = _tcsdup(_T("DeskShow"));

现在你只要用CWinApp 函数GetProfileString()、GetProfileInt()、GetProfileBinary()、WriteProfileString()、WriteProfileInt()和WriteProfileBinary()随心所欲存取注册表的值。例如:

void MyClass::MyFunction()
{
CString lastfilename = AfxGetApp()->GetProfileString(_T("Initialize"),
_T("LoadFile"), _T(""));
AfxGetApp()->WriteProfileInt(_T("Epochs"), T("CurrentTime"),
m_currtime);
……
}

第一次调用GetProfileString函数从注册表的HKEY_CURRENT_USER\Software\VCKBASEStudio\DeskShow\Initialize键中获取LoadFile值,如果没找到这个值则返回空串。第二次调用WriteProfileInt将成员变量m_currtime写入子键DeskShow.的Epochs项下CurrentTime键值中。即HKEY_CURRENT_USER\Software\ VCKBASEStudio \DeskShow\Epochs的CurrentTime值域。这些函数让我们能很轻松地使用注册表存储程序设置。
liu_swallow 2003-12-14
  • 打赏
  • 举报
回复
CString lastfilename = AfxGetApp()->GetProfileString(_T("Initialize"),
_T("LoadFile"), _T(""));
AfxGetApp()->WriteProfileInt(_T("Epochs"), T("CurrentTime"),
m_currtime);

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧