2011-05-05 97 views
1

我有以下情況 - 我注入一個用C編寫的DLL到另一個進程中,該DLL加載CLR並啓動一個線程調用託管類庫中的方法。我的問題是 - 我應該如何以及何時釋放所有這些對象的內存,以便目標進程(其中我最初注入dll)可以成功退出並釋放它的資源,包括釋放我注入的dll的鎖?DLL注入,線程和內存釋放

+0

你的意思是釋放注入DLL的內存?你能否給出更多的信息,這很模糊,很難用這種方式來回答。 – 2011-05-05 10:24:03

+0

是的。如果我只是注入一個DLL然後退出注入進程,那麼即使用戶關閉了目標進程的GUI部分,目標進程仍將保留在內存中並保留注入的dll的文件鎖定。 – DarkDeny 2011-05-05 10:30:56

+0

如果沒有您仔細記錄首先注入DLL的方式,這是無法回答的。注入CLR是相當討厭的順便說一句。 – 2011-05-05 12:56:49

回答

0

這個怎麼樣:

,因爲你已經在DLL注入代碼它只有很小的一步掛鉤目標進程的退出/清除呼叫並做:

  • 跳轉到你的代碼
  • 停止線程
  • 清理MEM
  • 跳回