在我的应用程序中,主可执行文件和多个(动态加载的)共享库包含Qt resources。它似乎加载了所有这些,并且可以使用所有资源的联合。如果多个资源具有相同名称的文件会发生什么?第一个或最后一个优先,或者是随机/未定义?有没有办法从特定文件访问资源?插件可以覆盖主应用程序中的资源吗?
我知道这可以通过合理使用路径来避免,我只是询问规则是什么,因为它似乎没有记录。
答案 0 :(得分:1)
从这个thread看,如果你的名字有冲突,你肯定会遇到问题。这有点奇怪的IMO,每个二进制文件从其自己的嵌入式资源文件中解析资源会更有意义。但这不是Qt的工作原理,所以如果你想避免名称冲突,请为每个插件使用唯一的文件夹前缀。
答案 1 :(得分:1)
资源系统为每个名称注册一个资源,哪个资源确切地具有给定名称仅取决于库加载顺序:不是您可以随时控制的内容。如果具有给定名称的第一个或最后一个资源“获胜”,则无关紧要。你不能依赖任何一个,它甚至可能在整个平台上表现不一样,所以你无法修复你的代码。