繁体   English   中英

将QString转换为const void *

[英]Convert QString to const void*

我正在用Qt5开发一个用于在我的mac上发送短信的软件。 我正在使用UMTS Stick和库"unistd.h"来写入文件描述符。 问题是我不知道如何使用函数“ssize_t write(int fd,const void * buf,size_t count)” 在Qt5中我有一个QTextEdit ,我想将文本作为参数传递给函数write

我没有得到以下代码的错误,但它不起作用。 有错吗?

QString smsText = ui->smsTextField->toPlainText();

std::string utf8_text = smsText.toUtf8().constData();
const void * a = utf8_text.c_str();

write(fd, &a, sizeof(a));

有两个相关的问题。 您使用&asizeof(a)作为参数。 这基本上意味着您将存储在指针a的地址写入流中。

您应该该地址传递数据,其大小由字符串的长度给出:

write(fd, a, utf8_text.size());

尝试:

write(fd, utf8_text.c_str(), utf8_text.size()); 

&a包含void指针的地址。 此外, sizeof(a) ,当a是指针时,将始终返回相同的长度(可能是4或8个字节,具体取决于您的体系结构)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM