c++ - QString 到 windows BYTE

标签 c++ qt byte typedef

我有一个 BYTE 类型,它在 windows.h 头文件中定义如下:

    typedef unsigned char BYTE;

然后我在数据库中得到了一些字段,我将它们作为 QString 获取并将它们转换为 QByteArray。

目前我有:

        QString str = "0x168de78"; //some info from the database

        QByteArray tempB = QByteArray::fromHex(str.toAscii().toHex());

        BYTE *sequence = (BYTE*)strdup(tempB.data());

在这种情况下,“0x168de78”代表我期望从数据库中获取的信息样本。

我需要将 QString 按字面意思转换为 BYTE,以便稍后使用它。

如果我告诉应用程序给我 sequence 和 tempB.data() 的值,我会得到类似这样的结果:

0x867dc8 "0x168de78" 
0x867de0 "0x168de78" 
0x867df8 "0x168de78" 

所以 tempB.data() 没问题,但 sequence 不行。我做错了什么?

最佳答案

QString str = "0x168de78"; //some info from the database

QByteArray tempB =  QByteArray::fromHex(str.toAscii());//or 
//QByteArray tempB =  str.toAscii().toHex();

BYTE *sequence = (BYTE*)strdup(tempB.data());

更新:如果你可以使用STL

unsigned int value;   
std::stringstream ss;
ss << std::hex << "0x168de78";
ss >> x;

关于c++ - QString 到 windows BYTE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13859982/

相关文章:

c++ - 无法使用我的 QAbstractItemModel 派生类让 QColumnView 显示多行数据

c++ - 带有 Qt 对象的 Cmake 库?

c++ - 垂直布局 QTableView 的范例方式

c# - 在短和字节之间转换的好方法?

go - 为什么golang对 byte slice 使用括号,对字符串片使用括号?

c++ - 我应该使用哪个智能指针?

c++ - 我想看看一个字符是否存在于字符串中

c++ - 如何从其值中获取枚举项名称

c++ - 为什么必须在哪里放置 “template”和 “typename”关键字?

python - 如何更改 python 中的字节值?