• 8767阅读
  • 10回复

qt中如果设定大小端 [复制链接]

上一主题 下一主题
离线kfor9
 

只看楼主 倒序阅读 楼主  发表于: 2010-04-28
qt我想把整个程序变成big-endian的,不知道应该怎么做?这样就不用每次都调转换函数了

还有转换函数,mfc是htos等等,qt里是哪个函数?
离线xtfllbl

只看该作者 1楼 发表于: 2010-04-28
void QDataStream::setByteOrder ( ByteOrder bo )
Sets the serialization byte order to bo.

The bo parameter can be QDataStream::BigEndian or QDataStream::LittleEndian.

The default setting is big endian. We recommend leaving this setting unless you have special requirements.

See also byteOrder().
上海欢迎您
离线kfor9

只看该作者 2楼 发表于: 2010-04-28
回LS

我不用QDataStream的,现在直接调QFile的读和写,要怎么弄?
离线xtfllbl

只看该作者 3楼 发表于: 2010-04-28
引用第2楼kfor9于2010-04-28 16:25发表的  :
回LS
我不用QDataStream的,现在直接调QFile的读和写,要怎么弄?

你不用流就不牵涉到大小段的问题,请认清大小段的本质。
上海欢迎您
离线kfor9

只看该作者 4楼 发表于: 2010-04-28
有关系的,像:

quint32 data32;
QFile dstFile(“.\test.dat”);

    if ( !dstFile.open(QFile::WriteOnly) )
    {
        QMessageBox::warning(this, tr("提示"),
                             tr("无法创建文件")
                            );
        return ;
    }
data32=0x12345678;
dstFile.write((const char*)&data32,sizeof(data32));
这样子就出现大小端问题了,默认是大端。
离线paranoid
只看该作者 5楼 发表于: 2010-04-28
参见QDataStream里的例子
QFile file("file.dat");
file.open(QIODevice::WriteOnly);
QDataStream out(&file);   // we will serialize the data into the file
out << QString("the answer is");   // serialize a string
out << (qint32)42;        // serialize an integer
离线kfor9

只看该作者 6楼 发表于: 2010-04-28
都说不用QDataStream 了,我要用QFile,自己定的数据格式
离线yangfanxing
只看该作者 7楼 发表于: 2010-04-29
回 6楼(kfor9) 的帖子
some code about reading please~
PHPWind好恶心。。。不想看这种界面。。。
离线kfor9

只看该作者 8楼 发表于: 2010-04-29
noboby know the code
离线yangfanxing
只看该作者 9楼 发表于: 2010-04-29
回 8楼(kfor9) 的帖子
What a joke?
PHPWind好恶心。。。不想看这种界面。。。
离线wxj120bw

只看该作者 10楼 发表于: 2010-04-29
在QT4可以调用htos等函数。
快速回复
限100 字节
 
上一个 下一个