C++注册表封装类与VS2013的问题

Pokeeeer 2015-04-28 01:50:00
新手上路,最近要写一个调研项,VS2013下的C++注册表编程。初步思路是先将注册表API中诸多函数封装在一个类中。
代码参照帖子(1):http://blog.csdn.net/eaglewood2005/article/details/4076401
在VS2013运行后,报错:
Building an MFC project for a non-Unicode character set is deprecated. You must change the project property to Unicode or download an additional library.
帖子(2)找到解决方法:http://blog.csdn.net/shuaihj/article/details/17071351

微软解释:
用于多字节字符编码 (MBCS) 的 MFC 库 (DLL) 不再包含于

Visual Studio 中,但是可用作插件,您可以在任何装有

Visual Studio Professional、Visual Studio Premium 或

Visual Studio Ultimate的计算机上下载和安装。

(在 Visual Studio 中,必须启用 MFC。)

安装需要大约 440 MB 磁盘空间,包括英语(美国)和 DLL 的本地化版本。

在安装 MBCS DLL 后,如果卸载或修复 Visual Studio,则还会卸载或修复。

但是,如果只禁用 MFC,MBCS DLL 仍会保留在系统上。

如果仅卸载或修复 MBCS DLL,将不会修改 Visual Studio。

即:装上MBCS插件即可。咨询了下领导的意见是,不可以装MBCS插件...
那么问题来了:
我自己理解了一下代码,多字节字符编码的问题可能出现在帖子(1)代码的头文件中的 ” LPCTSTR“。
我对 LPCTSTR不是很了解,百科中说的也不是很明白,想请问大神 LPCTSTR到底是什么?是不是真的和MBCS插件有关系?
最后,如果不装MBCS插件,上述错误我应该如何修改呢?
...全文
164 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-04-30
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <tchar.h>
TCHAR strKey[256];
_tprintf(_T("input a strkey: \n"));
_fgetts(strKey,256,stdin);
if (_T('\n')==strKey[_tcslen(strKey)-1]) strKey[_tcslen(strKey)-1]=0;
Pokeeeer 2015-04-30
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
将所有字符串常量"..."用_T("...")括住。

	assert(m_hKey);
	assert(strKey);
	cout << "input a strKey: \n";
	cin >> strKey;
binary '>>' : no operator found which takes a right-hand operand of type 'LPCTSTR' (or there is no acceptable conversion) 请问 这个问题应该怎么解决呢
sumos 2015-04-29
  • 打赏
  • 举报
回复
操作注册表的API并不是很多,可以自己参考编写,不需要mfc环境
赵4老师 2015-04-28
  • 打赏
  • 举报
回复
然后在项目属性里面设置使用Unicode
赵4老师 2015-04-28
  • 打赏
  • 举报
回复
将所有字符串常量"..."用_T("...")括住。

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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