当前位置: 首页 > news >正文

长春火车站出站要求陕西网渭南站

长春火车站出站要求,陕西网渭南站,网站建设交接表,wordpress主题主页修改文章目录 一、简介二、常用方法2.1 构造函数2.2 动态加载方法——load()2.3 检查是否加载成功——isLoaded()2.4 访问插件中的根组件——instance()2.5 卸载插件——unload() 一、简介 QPluginLoader 类在运行时加载插件。 QPluginLoader 提供对Qt插件的访问。Qt插件存储在共享… 文章目录 一、简介二、常用方法2.1 构造函数2.2 动态加载方法——load()2.3 检查是否加载成功——isLoaded()2.4 访问插件中的根组件——instance()2.5 卸载插件——unload() 一、简介 QPluginLoader 类在运行时加载插件。 QPluginLoader 提供对Qt插件的访问。Qt插件存储在共享库如 DLL 文件中相比于 QLibrary访问的共享库 QPluginLoader 具有以下优点 QPluginLoader 会检查插件是否与应用程序使用的Qt版本一致QPluginLoader 提供对根组件对象 (instance())的直接访问而无需动手解析C函数。 QPluginLoader 对象的实例操作单个共享库文件这个共享库文件被称为插件。它以独立于平台的方式提供对插件中功能的访问。要指定要加载的插件请在构造函数中传递文件名或者使用setFileName()方法进行设置。 使用 QPluginLoader 类一旦加载成功插件会保留在内存中直到所有 QPluginLoader 实例都被卸载或者直到应用程序终止。可以使用多个unload()卸载插件但如果其它 QPluginLoader 实例仍在使用相同的库则调用将失败卸载仅在所有实例都调用了unload()后才会发生。在卸载之前根组件也将被删除。 注意 请注意如果您的应用程序是静态链接 Qt 的则不能使用 QPluginLoader。在这种情况下您还需要静态链接插件。如果需要在静态链接的应用程序中加载动态库可以使用 QLibrary。 二、常用方法 2.1 构造函数 原型 QPluginLoader::QPluginLoader(const QString fileName, QObject *parent Q_NULLPTR)解释 使用给定的父级构造一个插件加载器该加载器将加载fileName指定的插件。 为了可加载文件的后缀必须是符合平台的可加载库的有效后缀例如Unix上的.somacOS和iOS上的.dylib以及Windows上的.dll。后缀可以通过QLibrary::isLibrary进行验证。 注parent是可选的。 2.2 动态加载方法——load() 原型 bool QPluginLoader::load()解释 作用动态加载插件。 如果插件加载成功则返回true否则返回false。由于instance()总是在解析任何符号之前调用此函数因此没有必要显示地调用它。在某些情况下我们可能希望提前加载插件此时则可以使用该方法。 2.3 检查是否加载成功——isLoaded() 原型 bool QPluginLoader::isLoaded() const解释 如果插件已加载则返回true否则返回false。 2.4 访问插件中的根组件——instance() 原型 QObject *QPluginLoader::instance()解释 返回插件的根组件对象必要时加载插件。如果无法加载插件或无法实例化根组件对象则函数返回 0 。 如果根组件被销毁调用此函数将创建一个新实例。 当QPluginLoader被销毁时此函数返回的根组件不会被删除。如果你想确保根组件被删除你应该在不需要再访问核心组件是调用unload()。当库最终卸载时根组件将自动删除。 组件对象时QObject。使用qobject_cast()访问你感兴趣的接口。 2.5 卸载插件——unload() 原型 bool QPluginLoader::load()解释 如果可以卸载插件则卸载插件并返回true否则返回false。 在应用程序终止时会自动卸载插件因此通常不需要调用此函数。 如果 QPluginLoader 的其它实例正在使用相同的插件则调用将失败并且只有在每个实例都调用了unload()时才会进行卸载。 注 不要手动删除根组件对象而是依赖于unload()方法来自动删除它。因为手动删除根组件对象可能会引起内存管理问题比如访问已删除对象的错误或资源泄露。 错误举例 手动删除根组件会导致未定义行为 #include QPluginLoader #include QObjectclass MyPluginComponent : public QObject {Q_OBJECT public:MyPluginComponent() {}~MyPluginComponent() {}void doSomething() {} };int main() {QPluginLoader loader(MyPlugin.dll);QObject *rootComponent loader.instance();if (rootComponent) {// 错误的手动删除根组件delete rootComponent; // 这里手动删除了根组件对象// 尝试再次使用 rootComponent会导致未定义行为MyPluginComponent *myComponent qobject_castMyPluginComponent *(rootComponent);if (myComponent) {myComponent-doSomething(); // 这里会访问已被删除的对象导致崩溃或未定义行为}}// 即使调用 unload()根组件已经被手动删除可能会导致内存错误loader.unload(); // 此时 unload() 不能正确处理已删除的对象return 0; }
http://www.laogonggong.com/news/122963.html

相关文章:

  • 兖州网站建设推广做视频网站免费观看爱
  • 公司邮箱名称怎么取比较好seo软件工具箱
  • 苏州做网站专业的公司angular2做的网站有
  • 邯郸做网站公司长沙旅游必去十大景点
  • 做app需要先做网站吗佛山网站优化推广方案
  • 外贸网站建设源码个人网站设计内容和要求
  • 广西省住房和城乡建设厅官方网站新浪博客上传wordpress
  • 49you网页游戏平台搜索引擎优化效果
  • 建设厅注册中心网站asp.net网站开发步骤
  • 怎么做网站封面上的图汉中网站建设费用
  • 做公众号需要网站中国国际贸易平台
  • 黔南服务好的高端网站设计公司上海数据开放网站建设
  • 网站建设续费催款通知书那个网站做h5不要钱
  • 网站建设分金手指专业十九专业网站设计推荐
  • 电子商务网站规划开发实训教程做网站媒体
  • 商城网站建设需求企业形象设计公司
  • 公司网站域名到期了去哪里缴费9377将军传奇
  • .net网站开发代码网站设计 书籍
  • 做违法网站犯法吗手机app开发培训课程
  • 已备案网站增加域名公司注册地址查询系统
  • 网站建设费用IP温州设计网站建设
  • 网网站建设与设计公司网站如何建设
  • 合伙开公司建设网站被骗网站关键词优化方式
  • html做网站需要服务器吗微信公众平台开发者文档
  • 网站两侧广告代码wordpress禁止调用头部
  • 做营销网站代理挣钱吗wordpress资源下载主题
  • 接做网站单子的网站网站建设加推广
  • 潜江市住房城乡建设厅网站做个网站成功案例
  • 网站推广策划的思路wordpress插件自定义字段
  • 移动网站制作价格网站降权处理