1
這個問題幾乎是這樣說的。 我有一個.net EXE運行,然後加載我的庫(在C++中)。有什麼辦法可以獲得ICLRMetaHost或類似的界面,以便啓動.net exe時mscoree加載? 我想這樣做主要是爲了調試目的,我可以從我的本機庫訪問gc和內存相關的設置。有沒有什麼辦法從C++庫獲取ICLRMetaHost
用於指出使用單聲道主機api的類似實現的獎勵點。
這個問題幾乎是這樣說的。 我有一個.net EXE運行,然後加載我的庫(在C++中)。有什麼辦法可以獲得ICLRMetaHost或類似的界面,以便啓動.net exe時mscoree加載? 我想這樣做主要是爲了調試目的,我可以從我的本機庫訪問gc和內存相關的設置。有沒有什麼辦法從C++庫獲取ICLRMetaHost
用於指出使用單聲道主機api的類似實現的獎勵點。
我不明白爲什麼獲得ICLRMetaHost
的正常方式將不會從一個已經加載由CLR DLL中工作...
CLRCreateInstance
。CLRCreateInstance
如圖所示here 得到ICLRMetaHost
。EnumerateLoadedRuntimes
並希望只有一個加載...ICLRRuntimeHost
。ICLRRuntimeHost
獲得ICLRControl
ICLRControl
獲得ICLRGCManager
#include
你沒有得到來自託管API「GC和內存有關的設置」鼓搗。這裏沒有足夠的東西來猜測你是在做什麼。關於它的書籍已經寫了,史蒂文Pratschner的是相當不錯的。 –
IGCHost :: GetThreadStats或ICLRGCManager :: GetStats看起來像是有用的函數。 我想訪問CLR正在使用多少內存,所以我能夠顯示調試輸出爲我的應用程序的每個部分使用多少內存。 能夠獲得集合的數量也不錯,這兩個功能都是由我前面提到的兩個函數提供的。 – Programmdude
.NET PerformanceCounters也會返回這個信息。使用非常簡單,不需要定製託管。如果你沒有考慮或記錄你真的需要什麼,那麼定製託管只是一個錘子,看起來可以擊中任何釘子。 –