1. 程式人生 > >關於QPluginLoader的載入和解除安裝

關於QPluginLoader的載入和解除安裝

    我們知道Qt的外掛系統中通過QPluginLoader類來動態載入外掛庫,但對於具體的動態載入和解除安裝機制不是很清楚,因此花了點時間詳細研究了QPluginLoader的原始碼,對於QPluginLoader類有些新的認識,記錄如下,供參考。

    1. QPluginLoader在後臺是通過QLibraryPrivate類完成載入庫操作的,這與QLibrary類是一樣的;

    2. 多個QPluginLoader的例項如果載入同一個外掛庫,那麼其後臺的庫是同一個,也就是說多個QPluginLoader的例項並不會導致同一個動態庫被多次載入;

    3. 在QPluginLoader物件被析構時,其載入的動態庫也不會被解除安裝;

    4. QPluginLoader的load函式會在執行instance時自動執行,一般不需要直接執行;(參考文件中有提到)

    5. 解除安裝外掛需要呼叫unload函式執行,但如果有多個例項載入(load)了同一個外掛庫,那麼只有在最後一個例項執行unload後才能將動態庫解除安裝,前幾個例項的unload方法都會返回false,動態庫也不會被解除安裝。

相關推薦

關於QPluginLoader載入解除安裝

    我們知道Qt的外掛系統中通過QPluginLoader類來動態載入外掛庫,但對於具體的動態載入和解除安裝機制不是很清楚,因此花了點時間詳細研究了QPluginLoader的原始碼,對於QPluginLoader類有些新的認識,記錄如下,供參考。     1. QPl

c# 動態載入解除安裝C#DLL程式集 C++程式集,

c# 動態載入和解除安裝C#DLL程式集的原文連結是: http://www.cnblogs.com/MiracleLee/archive/2013/01/31/2886323.html 做一個開源專案地址是:

lua檔案的載入解除安裝~package.loadedrequire配合讓一個檔案更新後重新載入

用require函式只能載入一次,因為它的特性是: 1、require函式會搜尋目錄載入檔案 2、require會判斷是否檔案已經載入避免重複載入同一檔案 而這個特性二,雖然我們可能知道這兩個特性,但是潛意識裡面常常把這個特性二給忽視掉了. 直到哪天我們需要反覆載入同

Java類載入解除安裝的跟蹤

什麼是類的載入和解除安裝 Java程式的執行離不開類的載入,為了更好地理解程式的執行,有時候需要知道系統載入了哪些類。一 為什麼要跟蹤 般情況下,系統載入的類存在於檔案系統中,以jar檔案或者class檔案的形式存在,可以直接在通過檔案系統檢視。但

細談unity資源載入解除安裝

轉載請標明出處:http://www.cnblogs.com/zblade/ 一、概要 在瞭解unity的資源管理方式之後,接下來細談一下Unity的資源是如何從磁碟中載入到執行時的記憶體中,以及又是如何被解除安裝的。這部分較為繁瑣,可能會寫較多的過程。 二、指令碼資源的載入和解除安裝 在unity中

視訊swf的相對路徑載入解除安裝

package com{ import flash.display.MovieClip; import flash.net.NetConnection; import flash.net.NetStream; import flash.events.AsyncErrorE

塊裝置驅動註冊登出、載入解除安裝、塊裝置驅動的I/O請求

塊裝置驅動的open()函式和字元裝置驅動的open()和類似,都以相關inode和file結構體指標作為引數,當一個結點引用一個塊裝置時,inode->i_bdev->bd_disk包含一個指向關聯gendisk的結構體的指標.因此類似字元裝置,可將gendisk的private_data賦給f

HGDB4.3.2在CentOS 6.x中安裝解除安裝指導手冊

目錄 文件用途 詳細資訊 相關文件 文件用途 介紹HGDB4.3.2在CentOS 6.8系統上的安裝和解除安裝流程。 詳細資訊 1.安裝版本及注意事項 1.1 安裝版本 作業系統 CentOS 6.8 x86_64

Linux 磁碟分割槽,檔案系統建立、掛載解除安裝

建立分割槽 (fdisk): 第一步先在Linux的虛擬機器上新增一塊硬碟,新增完成後需要重啟虛擬機器才能夠檢測識別到新硬碟。 重啟系統後可以使用 fdisk -l 命令檢視當前所有磁碟分割槽情況,sdb為我們剛剛建立的新磁碟,可以與上面的sda磁碟對比,發現新磁碟sdb還沒有分割槽。接下來就是為

windown下linux子系統的安裝解除安裝

原文: windown下linux子系統的安裝和解除安裝 安裝 第一步  開啟開發人員模式 第二步  勾選適用linux的window子系統 第三步  開啟powershell 第四步  在PowerShell裡輸入lxrun&nbs

dll 載入解除安裝的順序研究

之前寫過一篇DLL 載入解除安裝的文章,不太好,重寫一下,更深入一點。 兩個組或者兩個公司獨立的開發可能用來組成同一個產品的元件,但是他們必須獨立的構建、測試和提交他們的工作。元件粒度很難是正確的且與怎麼對元件是最好的這樣的問題無關。取而代之的是,一個元件是怎樣才能對公司最好(團隊不

Linux yum原始碼包安裝解除安裝

Linux 下的絕大多數原始碼包都是用 C 語言編寫的,還有少部分是用 C++ 等其他程式語言編寫的。所以,要想安裝原始碼包,必須安裝 C 語言編譯器 gcc(如果是用 C++ 編寫的程式,則還需要安裝 gcc-c++)。我們可以先檢測一下 gcc 是否已經安裝,命令如下: [

Redis安裝、配置解除安裝

1.安裝 mkdir /usr/local/redis 新增目錄 wget [http://download.redis.io/releases/redis-4.0.1](http://download.redis.io/releases/redis-4.0.1).tar.gz ta

HGDB4.3.2在RHEL7.5中安裝解除安裝指導手冊

目錄 文件用途 詳細資訊 相關文件 文件用途 介紹HGDB4.3.2在RHEL7.5系統上的圖形化安裝和解除安裝流程。 詳細資訊 1.安裝版本及注意事項 1.1 安裝版本 作業系統 Redhat 7.5 x86_64

eclipse的下載,安裝解除安裝

 1.eclipse的安裝 1.1.下載eclipse:步驟如下。         1.2.安裝eclipse:把下載下來的壓縮包直接解壓到你的安裝目錄即可(eclipse是一款開源,綠色的軟體)進入到bin裡面把eclipse.exe傳送

Ubuntu16.04 下如何安裝解除安裝Google Chrome

參考文章: https://www.aliyun.com/jiaocheng/141917.html https://blog.csdn.net/luohuiwu/article/details/80722075 安裝 1.將下載源新增到系統源中。 sudo wget https

oracle安裝除錯解除安裝

注意: 使用資料庫之前開啟資料庫服務:     OracleOraDb11g_home1TNSListener 常用賬號:         管理員賬號   sys/sys   system/system &

Oracle12C在winserver2012R2的安裝解除安裝

  Oracle12C在winserver2012R2的安裝                  以下為標準安裝,從dbca開始,還有高階模式安裝,

Linux裡面安裝解除安裝mongodb

Linux裡面安裝和解除安裝mongodb 解除安裝 如果您之前安裝過mongodb,但沒有安裝成功的話,您可以先執行以下操作,將其解除安裝乾淨後再安裝: sudo apt-get autoremove mongodb sudo apt-get autocle

LINUX系統軟體安裝解除安裝的常見方法

linux系統分很多種簡單介紹幾種常用的: 1、centos/redhat: 安裝: rpm安裝,如果有依賴,很鬧心,如果使用--nodeps不檢查依賴,會有問題。 #rpm -ivh <XXX.rpm> #不檢查依賴的話,新增 --nodeps yum安裝,自動解決依賴,推薦