wchar_t

C++ 字符串相互转换 适合 lua project

吃可爱长大的小学妹 提交于 2019-12-03 06:22:00
#include <iostream> #include <Windows.h> #include <assert.h> #define Main main void wchar2char(char *Buf,const wchar_t* wchar) { int len = WideCharToMultiByte(CP_ACP, 0, wchar, wcslen(wchar), NULL, 0, NULL, NULL); WideCharToMultiByte(CP_ACP, 0, wchar, wcslen(wchar), Buf, len, NULL, NULL); } //———————————————— //版权声明:本文为CSDN博主「bailang_zhizun」的原创文章,遵循CC 4.0 by - sa版权协议,转载请附上原文出处链接及本声明。 //原文链接:https ://blog.csdn.net/bailang_zhizun/article/details/80348282 wchar_t * char2wchar(const char* cchar) { wchar_t *m_wchar; int len = MultiByteToWideChar(CP_ACP, 0, cchar, strlen(cchar), NULL, 0); m_wchar =

Cannot convert argument 1 from &#039;const char [5]&#039; to &#039;LPCTSTR&#039;

匿名 (未验证) 提交于 2019-12-03 00:59:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I'm using this codeproject: http://www.codeproject.com/Articles/10138/Voice-Recording-Playing-back-using-simple-classes void CFisterDlg::OnRecord() { CString string; m_RecButton.GetWindowText(string); if(string == "Record") { StartRecordingToFile(); m_RecButton.SetWindowText("Stop"); } else { StopRecordingToFile(); m_RecButton.SetWindowText("Record"); } } But I get this error in numerous places: error C2664: 'void CWnd::SetWindowTextW(LPCTSTR)' : cannot convert argument 1 from 'const char [5]' to 'LPCTSTR' I think it has something to do with

C,C+和C++它们有什么区别

匿名 (未验证) 提交于 2019-12-02 23:57:01
只有C语言和C++语言,没有C+语言。 1、出现时间不同 C++是C的超集,也可以说C是C++的子集,因为C先出现。按常理说,C++编译器能够编译任何C程序,但是C和C++还是有一些小差别。 例如C++增加了C不具有的关键字。这些关键字能作为函数和变量的标识符在C程序中使用,尽管C++包含了所有的C,但显然没有任何C++编译器能编译这样的C程序。 2、C程序可以省略函数原型,而C++不可以 一个不带参数的C函数原型必须把void写出来。而C++可以使用空参数列表。C++中new和delete是对内存分配的运算符,取代了C中的malloc和free。标准C++中的字符串类取代了C标准C函数库头文件中的字符数组处理函数(C中没有字符串类型)。 C++中用来做控制态输入输出的iostream类库替代了标准C中的stdio函数库。C++中的try/catch/throw异常处理机制取代了标准C中的setjmp()和longjmp()函数。 3、关键字和变量不同 在C++中还增加了bool型变量和wchar_t型变量:布尔型变量是有两种逻辑状态的变量,它包含两个值:真和假。如果在表达式中使用了布尔型变量。 那么将根据变量值的真假而赋予整型值1或0。要把一个整型变量转换成布尔型变量,如果整型值为0,则其布尔型值为假;反之如果整型值为非0,则其布尔型值为真。布儿型变量在运行时通常用做标志

(C++)wchar_t 转 string / TCHAR转为char/判断是否进程运行/获得目标进程的入口

匿名 (未验证) 提交于 2019-12-02 23:32:01
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Giser_D/article/details/89787116 首先是wchar_t转string void Wchar_tToString(string& szDst, wchar_t* wchar) { wchar_t* wText = wchar; DWORD dwNum = WideCharToMultiByte(CP_OEMCP, NULL, wText, -1, NULL, 0, NULL, FALSE); char* psText; psText = new char[dwNum]; WideCharToMultiByte(CP_OEMCP, NULL, wText, -1, psText, dwNum, NULL, FALSE); szDst = psText; delete[]psText; } TCHARתchar //将TCHAR转为char void TcharToChar(const TCHAR* tchar, char* _char) { int iLength; //获取字节长度 iLength = WideCharToMultiByte(CP_ACP, 0, tchar, -1, NULL, 0, NULL, NULL); //将tchar值赋给

C++设计缺陷 : cin/cout wcin/wcout

匿名 (未验证) 提交于 2019-12-02 22:56:40
#include<iostream> using std::cin; using std::cout; using std::wcin; using std::wcout; using std::endl; int main() { char *a = new char[100]; wchar_t *b = new wchar_t[100]; cin >> a; wcin >> b; cout << a << endl; wcout << b <<endl; delete[] a; delete[] b; return 0; } #include<iostream> #include<string.h> using namespace std; int main() { ios::sync_with_stdio(false); std::locale::global(std::locale("zh_CN.UTF8")); char *a = new char[100]{'\0'}; wchar_t *b = new wchar_t[100]{L'\0'}; //cin >> a; //cin.clear(); wcin >> b; //cout << a << endl; //cout.clear(); wcout << b <<endl; //wcout.clear(); /

字符编码简介

依然范特西╮ 提交于 2019-12-01 18:22:28
ASCII( American Standard Code for Information Interchange ,美国信息互换标准代码) 它使用 0-127 之间 的数字来表示数字、字母、符号 等可见字符和一些控制字符,这个字符集的编码就确定了 ASCII 字符集。而这个字符集要想要在计算机的二进制方式下使用就必须用计算机能够理解的方式来处理, ASCII 使用了一个计算机字节来表示这种编码方式 。 GBK GBK,大家都知道 ,汉字内码扩展规范 。 GBK 是怎么来的呢? GBK 由 GB2312 扩展来的, GB2312 是最早的中文编码方式。 GB2312 又是怎么来的呢? 计算机发展到 80 年代在中国开始慢慢的兴起。为了能够让中国人能够更好的使用计算机 , 自然要引入中文编码到计算机中。但是引入中文编码遇到了一个问题,就是 ASCII 使用一个字节 来编码字符,但是中国的汉字是肯定不能够在一个字节中表示完全,怎么办?聪明的中国人发现一个字节 可表示的最大区间是 0-255 ,而 ASCII 只使用了 0-127,128-255 并没有使用,那么我们就可以用多个 字节 来表示中文编码 , 比如:一个字节( char )的值是在 0-127 之间,我们就还是用这个字节来表示 ASCII 里面的字符,也就是说兼容 ASCII 。 一个字节( char )的值是在 128

QString与TCHAR/wchar_t/LPWSTR之间的类型转换

不羁的心 提交于 2019-12-01 02:40:30
TCHAR/wchar_t/LPWSTR这三种类型在Unicode字符集中是一样的。 在Qt框架中,经常会使用到windows的函数,而自VC6.0以后,windows默认使用Unicode字符集,windows也相应的推出了TCHAR作为char的宽字符集和多字符集的通用类型来表示char类型。Unicode字符集中,TCHAR代表的是wchar_t,而Qt中,大多数情况下使用QString,这时就需要wchar_t*和QString之间的相互转换。代码如下: 1.TCHAR *类型转为QString类型: 1 QString MainWindow::WcharToChar(const TCHAR *wp, size_t codePage) 2 { 3 QString str; 4 int len = WideCharToMultiByte(codePage, 0, wp, wcslen(wp), NULL, 0, NULL, NULL); 5 char *p = new char[len + 1]; 6 memset(p, 0, len + 1); 7 WideCharToMultiByte(codePage, 0, wp, wcslen(wp), p, len, NULL, NULL); 8 p[len] = '\0'; 9 str = QString(p); 10

C++ UFT-8和GB2312间的转换

送分小仙女□ 提交于 2019-11-29 09:55:48
在这个帖子找到的代码 还蛮好用的 https://bbs.csdn.net/topics/391040755 #include <codecvt> #include <locale> #include <vector> using namespace std; std::string gb2312_to_utf8(std::string const &strGb2312) { std::vector<wchar_t> buff(strGb2312.size()); #ifdef _MSC_VER std::locale loc("zh-CN"); #else std::locale loc("zh_CN.GB18030"); #endif wchar_t* pwszNext = nullptr; const char* pszNext = nullptr; mbstate_t state = {}; int res = std::use_facet<std::codecvt<wchar_t, char, mbstate_t> > (loc).in(state, strGb2312.data(), strGb2312.data() + strGb2312.size(), pszNext, buff.data(), buff.data() + buff.size(), pwszNext

C,C+和C++它们有什么区别

早过忘川 提交于 2019-11-29 04:43:34
只有C语言和C++语言,没有C+语言。 1、出现时间不同 C++是C的超集,也可以说C是C++的子集,因为C先出现。按常理说,C++编译器能够编译任何C程序,但是C和C++还是有一些小差别。 例如C++增加了C不具有的关键字。这些关键字能作为函数和变量的标识符在C程序中使用,尽管C++包含了所有的C,但显然没有任何C++编译器能编译这样的C程序。 2、C程序可以省略函数原型,而C++不可以 一个不带参数的C函数原型必须把void写出来。而C++可以使用空参数列表。C++中new和delete是对内存分配的运算符,取代了C中的malloc和free。标准C++中的字符串类取代了C标准C函数库头文件中的字符数组处理函数(C中没有字符串类型)。 C++中用来做控制态输入输出的iostream类库替代了标准C中的stdio函数库。C++中的try/catch/throw异常处理机制取代了标准C中的setjmp()和longjmp()函数。 3、关键字和变量不同 在C++中还增加了bool型变量和wchar_t型变量:布尔型变量是有两种逻辑状态的变量,它包含两个值:真和假。如果在表达式中使用了布尔型变量。 那么将根据变量值的真假而赋予整型值1或0。要把一个整型变量转换成布尔型变量,如果整型值为0,则其布尔型值为假;反之如果整型值为非0,则其布尔型值为真。布儿型变量在运行时通常用做标志