2016-10-24 4 views
1

В моем приложении основной исполняемый файл и несколько (динамически загружаемых) разделяемых библиотек содержат Qt resources. Кажется, что они загружают все, и доступно объединение всех ресурсов. Что произойдет, если у нескольких ресурсов есть файл с тем же именем? Первый или последний имеет приоритет, или он случайный/неопределенный? Есть ли способ доступа к ресурсам из определенных файлов? Может ли плагин переопределять ресурсы в основном приложении?Правила перегрузки в системе ресурсов Qt

Я знаю, что этого можно избежать разумным использованием путей, я просто спрашиваю, что такое правила, поскольку он, похоже, не документирован.

+0

Почему? Они отлично работают, мне просто интересно, что произойдет, если я случайно создам разные файлы с тем же именем в двух плагинах. – patstew

+0

Ничего, я неправильно понял ваши намерения. – dtech

ответ

1

Система ресурсов регистрирует один ресурс на имя и какой ресурс точно будет иметь заданное имя, зависит только от порядка загрузки библиотеки: не всегда можно управлять. Даже не имеет значения, будет ли первый или последний ресурс с заданным именем «победить». Вы не можете зависеть ни от одного из них, он может даже не действовать одинаково на всех платформах, поэтому у вас нет способа исправить ваш код.

1

Из этого thread похоже, что у вас обязательно возникнут проблемы, если у вас конфликтующие имена. Это немного странная ИМО, для каждого двоичного файла было бы разумнее разрешать ресурсы из собственного встроенного файла ресурсов. Но это не так, как работает Qt, поэтому, если вы хотите избежать конфликтов имен, используйте уникальный префикс папки для каждого плагина.

Смежные вопросы