16,472
社区成员
发帖
与我相关
我的任务
分享
RegCreateKeyEx(HKEY_CURRENT_USER,
TEXT("HTCElWord\\"),
NULL,
TEXT(" "),
REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,
&EngFontShow,
&result);
RegSetValueEx(EngFontShow,
(LPCTSTR)_T("EngFontShow"),
(DWORD)0,
REG_DWORD,
(BYTE*)(EngFontShowFlag),
sizeof(DWORD));
RegCreateKeyEx(HKEY_CURRENT_USER,
TEXT("HTCElWord\\"),
NULL,
TEXT(" "),
REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,
&ChsFontShow,
&result);
RegSetValueEx(ChsFontShow,
(LPCTSTR)_T("ChsFontShow"),
(DWORD)0,
REG_DWORD,
(BYTE*)(CHSFontShowFlag),
sizeof(DWORD));
RegFlushKey(EngFontShow);
RegCloseKey(EngFontShow);
RegFlushKey(ChsFontShow);
RegCloseKey(ChsFontShow);
DWORD tempDword;
DWORD dwType = REG_DWORD;
DWORD dwDataSize = sizeof(DWORD);
HKEY hKey;
RegOpenKeyEx(HKEY_CURRENT_USER,"HTCElWord\\",0,KEY_READ,&hKey);
RegQueryValueEx(hKey,"EngFontShow",0,&dwType,(LPBYTE)(&tempDword),&dwDataSize);
theApp.EngFontShowFlag = tempDword; //调入注册表上次记录下的英文状态
RegOpenKeyEx(HKEY_CURRENT_USER,"HTCElWord\\",0,KEY_READ,&hKey);
RegQueryValueEx(hKey,"CHSFontShow",0,&dwType,(LPBYTE)(&tempDword),&dwDataSize);
theApp.CHSFontShowFlag = tempDword; //调入注册表上次记录下的中文状态
HKEY hKey = NULL;
DWORD dwError = RegCreateKeyEx(HKEY_CURRENT_USER, TEXT("Software\\xxx"), 0, NULL, 0, KEY_READ, NULL, &hKey, NULL);
if (dwError == ERROR_SUCCESS) {
DWORD dwFlag = (DWORD)theApp.CHSFontShowFlag;
// 虽然用 int 也可,Windows 的 int 和 DWORD 长度一样,但尽量用 DWORD,因为有 REG_DWORD 类型。
RegSetValueEx(hKey, TEXT("xyz"), 0, REG_DWORD, (BYTE *)&dwFlag, sizeof(DWORD));
RegCloseKey(hKey);
}
int flagInt;
if (theApp.theApp.CHSFontShowFlag== TRUE)
{
flagInt = 1;
}
else
{
flagInt = 0;
}
到了这一步,RegSetValueEx函数,如何正确地写入呢,因为不是太熟练C++,看不懂WIN32的API参数说明。。。。
我参考的例子是直接把C++变量直接用(BYTE*)(flagInt)这样写,想了一下,应该不是(BYTE*)写入int类型的,那么应该如何写入呢?语法?