問題タブ [qdatastream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - データストリーム Qt から標準の C++ コードへ
バイナリファイルを読み込む関数Qtを作成しましたが、動作します。
[コード]
したがって、基本的には、さまざまなサイズの変数を使用してファイル内の値にアクセスし、バイナリ ファイルを読み取ることができます (ファイル構造の形式を知っているため)。
私の問題は、標準の c++ 関数と同じまたは類似の機能を作成する必要があることです。
Qt for C++ のような DataStream はありますか? または、手動でファイルをバッファにロードしてから、個々のバイトを読み取り、正しい表現長を取得するためにビット単位の操作を行う必要がありますか? 値を表示する前、またはより簡単な方法がある場合...
先行きは…?
qt - カスタム オブジェクトをシリアル化する方法
オブジェクトをディスク上でシリアル化しようとすると問題が発生します。これは単純化されたシナリオです。
独自のシリアル化演算子を提供する ObjectA があります。データをファイルに保存/ロードできるため、機能します。次に、データ メンバーとして ObjectA を含む ObjectB があります。ObjectB を保存しようとすると、ランタイム エラーが発生しました。
QVariant::save: タイプ 279 を保存できません。
ストリーム オペレーターに次のコードを使用しています。
(ObjectB 演算子の場合は A を B に置き換えるだけです)
エラーは ObjectB シリアライゼーションの実装にあると思いますが、どうすればよいかわかりません。
c++ - QByteArray を QDataStream に追加しますか?
に別のデータを入力する必要がありQByteArray
ます。だから私はを使用していQDataStream
ます。
ただし、 QByteArray をに追加したいと思いますbuffer
。
私は何が欠けていますか?
qt - Qt QTcpSocket ストリーミング
私のアプリケーションは、を介してサーバーにオブジェクトを送信しましたQTcpSocket
。
クライアント:
サーバ:
問題は何も起こらないことですが、デバッグコンソールは私に言った:
...しかし、このQDataStream
オブジェクトではオープン モードを設定できません! :( どうしたの?
qt - QList を読み取れませんファイルから
ストリーム演算子>> に問題があります。カスタム オブジェクトの QList をファイルに保存してロードしようとしています。保存ルーチンは正常に動作しているように見えますが、ファイルを読み取るとクラッシュが発生します。非常に最小限の例を用意しました。まず、カスタム クラス:
この方法でストリーム演算子を実装しました:
これがsave()
関数です ( m_objectsList
is QList<CustomObject*>
)
これはread()
ルーチンです:
operator>> の for ループの条件ステートメントで、アプリケーションがセグメンテーション違反を起こします。
item
アクセスできません。
エラーがどこにあるのか説明してもらえますか?
どうもありがとう。
c++ - QDataStream シリアライズ ポインタ
との小さなインターフェースを実装していますQt
。現在取り組んでいるステップでは、スコア (カスタム クラス) があり、スコアを 1 つだけ保持できるドック (カスタム クラス) に移動できます。
私はこの例で (たくさん) インスピレーションを得ました:冷蔵庫のマグネット.
この構成では、ドラッグされたオブジェクトの情報は、QByteArray
によるシリアル化のおかげで、MIME データにストックされている のおかげで持ち込まれQDataStream
ます。
スコアが占有されたドックにドロップされたときに、「存在する」スコアが元のスペースに移動するようにしたいと思います。元のドックのアドレスを含む属性を持つことでそれができると思ったのですが、このポインターをデータストリームにストックすることはできません。
ここに私のコードの一部が続きます:
<< と >> 演算子をQDataStream
and Dock * でオーバーロードすることはできませんでした。これは、ポインターを使用してそれを行う唯一の方法が、実際のデータをストックすることだったからです。しかし問題は、私はデータが欲しくないということです。文字通りポインターが必要なだけです!
アイデアがあれば、これを行う方法を再考しなければならないとしても、喜んでお聞きします. ありがとうございました!