收藏 反射裝載DLL

2021-10-06 02:48:50 字數 755 閱讀 7965

//引導程式集(dll檔案位址),使用assembly類   

assembly assembly = assembly.loadfile(path);

//獲取型別,引數(命名空間+類)

type type = assembly.gettype("operation.yunsuan");

//建立該物件的例項,object型別,引數(命名空間+類)

object instance = assembly.createinstance("operation.yunsuan");

//設定add方法中的引數型別,type型別;如有多個引數可以追加多個

type params_type = new type[2];

params_type[0] = type.gettype("system.int32");

params_type[1] = type.gettype("system.int32");

//設定add方法中的引數值;如有多個引數可以追加多個

object params_obj = new object[2];

params_obj[0] = 1;

params_obj[1] = 2;

//執行add方法

object value = type.getmethod("add", params_type).invoke(instance, params_obj);

···

執行時 DLL 裝載

呼叫loadlibrary 或者loadlibraryex 系統按照 dll搜尋順序找到 dll檔案,若成功就將 dll檔案對映到程序的位址空間中,並加引用。如果已經載入了,則只增加引用。注意,同名不同路徑系統不認為是乙個 dll。1 如果之前沒有呼叫過 loadlibrary ex 或者loadl...

C 解析DLL 反射

前段時間敲 需要動態的載入的外部dll,並且解析dll,來讀取dll中的類,屬性,有時候還需要讀取特性的值。這個問題剛開始遇到,是一點想法沒有,以前沒有這麼用過,後來查資料,請教別人,終於有了結果。當有了 之後,發現在找問題的過程中,我糊塗了,因為解決這個問題的方式主要是 反射。我是通過利用反射進行...

Windows程式設計 監視DLL裝載 解除安裝

windows 驅動開發庫裡面提供了乙個函式 ldrregisterdllnotification 可以讓你監視程序裝載 解除安裝dll 的事件。當你想在某個dll被載入的時候hook它的函式 或者當你想在某個dll推出之前做一些儲存清理工作 或者當你想阻止某個dll 被載入 比如外掛程式 這個機制...