問題タブ [qsharedmemory]
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: 単一インスタンスのアプリ保護のベスト プラクティス
QSingleApplication
? QMutex
? QSharedMemory
? Windows、OSX、Linux (Ubuntu) でスムーズに動作するものを探しています。Qt 4.7.1 の使用
c++ - QSharedMemory::create() の問題
SingleApplication
プログラムのインスタンスを 1 つしか実行できないクラスを作成しようとしています。私はこれを使用して実装していますQSharedMemory
値を持つキーを使用しない限り、プログラムは正常に動作します"42"
。私がやっていることは何か間違っていますか?これは未定義の動作ですか?
メイン.cpp
SingleApplication.h
SingleApplication.cpp
qt - QShared Memory の作成サイズと返される size() が異なる理由
疑問がありますQSharedMemory
共有メモリを作成し、そのサイズが 4096 未満の場合、size() 関数は 4096 を返しました。
作成されたサイズが 4096 より大きい場合は、4096 + 作成されたサイズが返されます。
例えば:
正しいサイズを取得するには?
Windows 7 32 ビット OS を使用しています
python - Python で共有メモリ型セクションにアクセスする方法
Python アプリケーションに共有メモリ タイプのセクションからデータを読み取らせようとしています。共有メモリの場所は\Sessions\1\BaseNamedObjects\ObjectName
.
これを読むために mmap を使う必要がありますか? はいの場合、この共有メモリを開くにはどうすればよいですか? のようにopen("\Sessions\1\BaseNamedObjects\ObjectName", "r+b")
?
これを試しましたが、無効な引数が報告されました。
c++ - Qt アプリケーションのない QsharedMemory
アプリケーション A があり、アプリケーション B と情報を共有したいと考えています。アプリケーション A は、約 150 ミリ秒ごとに情報を書き込みます。アプリケーション B はいつでも情報を読み取ります。
と検索したら良さそうなのが見つかりましQSharedMemory
たが、アプリBは自社開発ではないので、プログラミング言語が選べません。
QSharedMemory
良い考えですか?どうやってやるの ?
c++ - QT: QSharedMemory が同じキーで複数のセグメントを作成しています
学習目的で、2 つの実行可能ファイルで構成されるアプリケーションを作成しています。とりわけ、各実行可能ファイルは独自の共有メモリ セグメントを (異なるキーで) 作成し、その後、実行可能ファイル A は B のキーを使用してセグメントを作成しようとし、B は A のキーを使用して同じことを行います (この目的は、各実行可能ファイルに対してです)。これがおそらくこれを達成する最良の方法ではないことはわかっていますが、この事実に集中しないでください)。いずれかのプログラムが他方のキーを使用してセグメントの作成に成功すると、他方が実行されていないと見なし、それに応じてアクションを実行します。
発生する問題は、B が A をチェックするとこれが正常に機能することです。しかし、A が B をチェックすると、B が既に作成したのと同じキーでセグメントを作成できます。私は可能なすべての競合状態をチェックしたと確信しており、両方のセグメントが同じキーで同時に存在することも確信しています(このキーを使用した両方の QSharedMemory create 呼び出しは true を返します)。実際、笑いのために、私は create 呼び出しをループ内に配置しました。ループが続く限り、同じキーでセグメントを作成し続けることができます。setKey() と setNativeKey() を使用して、コンストラクターで直接キーを渡そうとしましたが、どれも機能しませんでした。
そして、前に述べたように、私の頭を悩ませているのは、B が A をチェックする場合には同じアプローチが機能するが、その逆は機能しないということです。
なぜこれが起こっているのかわかりませんか?キーは標準に従う必要がありますか? スレッド/シグナル/メソッド内で使用する場合、QSharedMemory には制限または特定の動作がありますか?
A のコード スニペット (メソッドはシグナルを使用して呼び出されます - 動作しません):
Bのコードスニペット(シグナルを使用してメソッドも呼び出されます-WORKS)
c++ - QDatastream が遅すぎますか?
QSharedmemory を使用して、2 つのプロセス間で複数の画像 (実際にはビデオ) を渡そうとしています。現在、QImages の QVector をシリアル化し、これをメモリにコピーしています。これは機能しますが、シリアル化の手順に約 99% の時間がかかります。プラットフォームに依存しない方法でこれをより速く行うにはどうすればよいですか?
送信するための私のコード: