私は遊んでいQSharedMemory
ますが、重大なバグを見つけたのか、それとも何か間違ったことをしているのかわかりません。同じキーを持つメモリが存在しない場合はQSharedMemory::create()
true を返す必要があり、それ以外の場合は false を返し、QSharedMemory::error()
何が起こったのかを確認する必要があります。
私の現在のコードは次のとおりです。
QSharedMemory sm("smtest");
sm.setKey("smtest"); // <--- not needed as I already set the key in the initializator, but I'm leaving it anyways, just for the test
qDebug() << sm.create(1);
qDebug() << sm.create(1); //<--- I expect this to return false, but it returns true.
qDebug() << sm.error(); //<--. I expect this to return QSharedMemory::AlreadyExists, but QSharedMemory::NoError is returned instead.
//wtf?!
私の質問は、Qt4 で本当に大きなバグを見つけたのでしょうか、それとも何か間違ったことをしているのですか?
PS: このコードは Windows 7 x64 で実行されます
編集: 明確にするために、そのコードを 2 回実行すると、2 番目のアプリは最初のアプリを検出するはずですが、検出されません。
編集 2: ここでバグを報告しましたhttps://bugreports.qt.io/browse/QTBUG-27744