2016-10-24 5 views
1

私のアプリケーションでは、メインの実行可能ファイルといくつかの(動的にロードされた)共有ライブラリにはQt resourcesが含まれています。それはそれらのすべてをロードするようであり、すべてのリソースの結合が利用可能です。複数のリソースに同じ名前のファイルがあるとどうなりますか?最初か最後かが優先か、それともランダム/未定義ですか?特定のファイルからリソースにアクセスする方法はありますか?プラグインはメインアプリケーションのリソースを上書きできますか?Qtリソースシステムのオーバーロードルール

私はこれがパスの合理的な使用によって避けることができることを知っています、私はルールが文書化されていないように尋ねています。

+0

なぜですか?彼らは正常に動作している、私は2つのプラグインで同じ名前の別々のファイルを誤って作成した場合どうなるのだろうかと思っていた。 – patstew

+0

心配しないで、私はあなたの意図を誤解しました。 – dtech

答えて

1

リソースシステムは名前ごとに1つのリソースを登録します。また、特定の名前を持つリソースは、ライブラリのロード順序にのみ依存します。特定の名前の最初または最後のリソースが "勝つ"かどうかは関係ありません。あなたはそれに依存することはできませんし、プラットフォーム間で同じように動作しないかもしれないので、コードを修正するしかありません。

1

このthreadから、競合する名前がある場合は間違いなく問題に遭遇するようです。これはちょっと奇妙なIMOです。それは、各バイナリが独自の埋め込みリソースファイルからリソースを解決するのがより理にかなっています。しかし、Qtの仕組みではないので、名前の競合を避けたい場合は、すべてのプラグインに一意のフォルダプレフィックスを付けてください。