C&C++   发布时间:2022-04-13  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了通过typeid.name函数获得中文名类的中文名大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

一直想着能通过现成的typEID.name()函数直接获得我中文类的名字,可是却一直得到的乱码,网上搜索了好久也没有答案,最后终于在我不懈寻找下找到了解决方法。

最后发现是文字编码不同的原因,储存在代码中的编码方式,和通过cout输出出来的文字编码方式不同

这个我也不太懂,于是从网上找了许多编码方式转换的函数。试了好多不行,不过最后还是让我试到了。

 

char* U2G(const char* utf8)
{
int len = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, NULL, 0);
wchar_t* wstr = new wchar_t[len + 1];
memset(wstr, 0, len + 1);
MultiByteToWideChar(CP_UTF8, 0, utf8, -1, wstr, len);
len = WideCharToMultiByte(CP_ACP, 0, wstr, -1, NULL, 0, NULL, null);
char* str = new char[len + 1];
memset(str, 0, len + 1);
WideCharToMultiByte(CP_ACP, 0, wstr, -1, str, len, NULL, null);
if (wstr) delete[] wstr;
return str;
}

转载自:https://www.cnblogs.com/babietongtianta/p/3143900.html

不过注意,原文章中也提到了,使用过后要及时删除字符串指针。

 

于是就可以通过U2G(typEID(*this).name() + 6);得到了此类的中文名称。

那个+6是为了避去typEID前面不必要类型说明。只获得名称部分.

大佬总结

以上是大佬教程为你收集整理的通过typeid.name函数获得中文名类的中文名全部内容,希望文章能够帮你解决通过typeid.name函数获得中文名类的中文名所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: