これは本当にQtのバグのように感じます。誰でも解決策があるのですか、それともバグとして報告するべきですか?でも、それを使用する前にクラス 'QReadWriteLock'Errorで宣言されたプライベートメンバーにアクセスできないエラーC2248:' QReadWriteLock :: QReadWriteLock '
#include <QReadWriteLock>
class FileInfoWrapper {
public:
explicit FileInfoWrapper(const QFileInfo& _fileInfo);
~FileInfoWrapper();
private: // also tried public
mutable QReadWriteLock lock_;
、私はエラーが出る:それはプライベート/パブリックまたは何クラスIが含まれます場合
Error 1 error C2248: 'QReadWriteLock::QReadWriteLock' : cannot access private member declared in class 'QReadWriteLock'
は問題ではありません。私はスタック上に作成することができないようです。代わりに、私は「新しい」使用して、ヒープ上の1を作成したが、私は、コンストラクタで私のアプリケーションがクラッシュし、それを削除しようとすると:
Unhandled exception at 0x5090f39a (QtCored4.dll) in MyApp.exe: 0xC0000005: Access violation reading location 0xfeeeff0e.
コールスタック:
QtCored4.dll!QHash::~QHash() Line 283 + 0xa bytes C++ QtCored4.dll!QReadWriteLockPrivate::~QReadWriteLockPrivate() + 0x38 bytes C++ QtCored4.dll!QReadWriteLockPrivate::`scalar deleting destructor'() + 0xf bytes C++ QtCored4.dll!QReadWriteLock::~QReadWriteLock() Line 137 + 0x1e bytes C++ CloudSync.exe!FileInfoWrapper::~FileInfoWrapper() Line 76 + 0x15 bytes C++
における変数「D」 QReadWriteLockPrivateは2回削除されたようです。しかし、これは別のクラスで動作します。ここでは、ヒープにロックを作成してから、コンストラクタでそのロックを削除する必要がありました。
Visual StudioでQt 4.8.0を実行しています。 Qt作成者4.7.4で同じ問題がありました。
Qt 4.7.4、MinGW、Windows 7 x64で再生できません。 –