主题:vs2008 unicode工程写入注册表出错
本人最近在做一个桌面辅助工具,碰到一个问题如下:
HMODULE hModule=NULL;
HKEY key;
CString svRunRegKey;
TCHAR svFileName[512], svFullPath[524];
::GetModuleFileName(hModule,svFileName,512);
wsprintf(svFullPath,L"\"%s\"",svFileName);
svRunRegKey=L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce";
if(isWrite)
{
HKEY key;
if (RegOpenKey(HKEY_LOCAL_MACHINE,svRunRegKey,&key)==ERROR_SUCCESS)
if (RegSetValueEx(key,L"Process",0,REG_SZ,(BYTE *)svFullPath,lstrlen(svFullPath) )==ERROR_SUCCESS)
RegCloseKey(key);
开发环境是VS2008,工程用的是UNICODE字符集,结果写入到注册表run下面是键值,就是那个程序路径老是被截断了一截,如下:
"d:\Backup\我的文档\Visual Studio 2008\P
路径老是错误的,请问那位大师能解释一下,最好能通过代码讲解一下关于UNICODE下的写入注册表················,不胜感激。
HMODULE hModule=NULL;
HKEY key;
CString svRunRegKey;
TCHAR svFileName[512], svFullPath[524];
::GetModuleFileName(hModule,svFileName,512);
wsprintf(svFullPath,L"\"%s\"",svFileName);
svRunRegKey=L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce";
if(isWrite)
{
HKEY key;
if (RegOpenKey(HKEY_LOCAL_MACHINE,svRunRegKey,&key)==ERROR_SUCCESS)
if (RegSetValueEx(key,L"Process",0,REG_SZ,(BYTE *)svFullPath,lstrlen(svFullPath) )==ERROR_SUCCESS)
RegCloseKey(key);
开发环境是VS2008,工程用的是UNICODE字符集,结果写入到注册表run下面是键值,就是那个程序路径老是被截断了一截,如下:
"d:\Backup\我的文档\Visual Studio 2008\P
路径老是错误的,请问那位大师能解释一下,最好能通过代码讲解一下关于UNICODE下的写入注册表················,不胜感激。