请问QT怎么转换成LPCTSTR 可以使用的字母, 比如QString str1="text"; 接下来怎么做
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问QT怎么转换成LPCTSTR 可以使用的字母, 比如QString str1="text"; 接下来怎么做相关的知识,希望对你有一定的参考价值。
请问QT怎么转换成LPCTSTR 可以使用的字母,
比如QString str1="text"; 接下来怎么做
LPCTSTR就是一个常量的TCHAR指针。
QString 可以通过 toLatin1() 转换成 QByteArray,再通过 constData() 转换成 const char *,即:
str1.toLatin1().constData();
具体区别看帮助吧,如果不改变的访问,constData快。追问
我试了不行,那个LPCTSTR的参数,可以用LPCSTR传传进去吗
追答你这么说我也不明白你要做什么,也不知道什么错误。
很可能是语言问题。
我有个MFC的头文件和LIB 可以在QT下用么
C++CString转换为const char *类型
CString str; 怎么转换
参考技术A LPCTSTRlpszText
=
(LPCTSTR)str;
CString
重载了
LPCTSTR
的隐式
类型转换
LPCTSTR
被定义为
const
TCHAR
*
TCHAR
在多字节编码里被定义为
char,
在宽字符里被定义为
wchar_t 参考技术B 将cstring转换为char*类型
1.传给未分配内存的const
char*
(lpctstr)指针.
cstring
cstr(asdd);
const
char*
ch
=
(lpctstr)cstr;
ch指向的地址和cstr相同。但由于使用const保证ch不会修改,所以安全.
2.传给未分配内存的指针.
cstring
cstr
=
"asddsd";
char
*ch
=
cstr.getbuffer(cstr1.getlength()
+
1);
cstr.releasebuffer();
//修改ch指向的值等于修改cstr里面的值.
//ps:用完ch后,不用delete
ch,因为这样会破坏cstr内部空间,容易造成程序崩溃.
3.第二种用法。把cstring
值赋给已分配内存的char
*。
cstring
cstr1
=
"asddsd";
int
strlength
=
cstr1.getlength()
+
1;
char
*pvalue
=
new
char[strlength];
strncpy(pvalue,
cstr1,
strlength);
4.第三种用法.把cstring
值赋给已分配内存char[]数组.
cstring
cstr2
=
"asddsd";
int
strlength1
=
cstr1.getlength()
+
1;
char
charray[100];
memset(charray,0,
sizeof(bool)
*
100);
//将数组的垃圾内容清空.
以上是关于请问QT怎么转换成LPCTSTR 可以使用的字母, 比如QString str1="text"; 接下来怎么做的主要内容,如果未能解决你的问题,请参考以下文章