【发布时间】:2020-05-08 06:00:15
【问题描述】:
我在我的项目中使用 QString,但在某些情况下,我必须将其传输到外部 SDK,该 SDK 期望以 null 终止的 const char*。为此我使用:
QByteArray folderName = ((QDataItem*)(*it))->GetName().toUtf8();
folderName.append('\0');
dir.lpszDir = folderName;
这里的投射方式正确吗?我想我必须用动态投射来投射它?或者有没有更好的方法将“GetName()”带入 const char*?
【问题讨论】:
-
我在list of Qt classes 中看不到
QDataItem。它是什么/它来自哪里? -
folderName.constData()可能是正确的选择,如果生命周期匹配。 -
@hyde ... QT 告诉我它不兼容。将 qchar * 分配给 const char*
-
@ingo 你现在省略了一些相关的东西,因为QByteArray::constData() 肯定会返回,
const char*。 -
这能回答你的问题吗? QString to char* conversion