私はQtの初心者であり、実行時にいくつかのアプリケーションを接続するための機能としてQSharedMemoryを使用したいと考えています。QSharedMemoryの例を確認し、使用するために必要なものをすべて抽出しました。
ここでの問題は、QSharedMemoryインスタンスがメモリの割り当てに失敗することです。これを呼び出すcreate()
とfalseが返され、に格納されているエラーメッセージを出力すると、次のエラーが表示されerrorString()
ます。
QSharedMemory::create: unable to make key
私のコードは次のようになっています。
QSharedMemory sharedmemory;
if(sharedmemory.isAttached())
sharedmemory.detach();
QString st = "this is the shared data";
QBuffer buffer;
buffer.open(QBuffer::ReadWrite);
QDataStream out(&buffer);
out << st;
int size = buffer.size();
if(!sharedmemory.create(size))
{
std::cout<<sharedmemory.errorString().toStdString()<<std::endl;
return 1;
}
メソッドに関して何を与えてもsize
、create()
メモリを割り当てないだけです。
どんなアイデアでも適用されます。ありがとうMahdi