【发布时间】:2019-08-24 13:39:06
【问题描述】:
想要将 QString 转换为 GBytes (glib)
我通过将 QString 转换为 GByteArray 并尝试了以下操作 将其释放到 GBytes
extern "C" {
#include <glib.h>
};
#include <QString>
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QString mylongstring = "HELLO_WORLD";
GByteArray *barr;
barr = g_byte_array_new ();
for (int i = 0; i < mylongstring.toLocal8Bit().count(); i++)
{
guint8 *charAt = (guint8*)mylongstring.at(i); //cant convert qchar to uint -> already crashes
g_byte_array_append (barr, (guint8*) charAt, 1);
}
GBytes *gbytes = g_byte_array_free_to_bytes(barr); //should contain the (guint8*) data of mylongstring
return app.exec();
}
【问题讨论】:
-
我们可以假设它没有按预期工作吗?以何种方式?发生什么了?应该发生什么?另外,请提供更多代码上下文,发minimal reproducible example。
-
更新说明。
-
您似乎更新了代码,但仍然没有描述。