2011-03-30 70 views
4

我正在研究一個使用EasyHook library進行DLL注入的C#應用​​程序。 EasyHook要求使用它的任何應用程序都是強命名的。爲了強烈地命名應用程序,我需要確保我使用的所有庫都是強命名的。如何強烈地命名非託管C++ Dll?

這對我所有的託管庫很容易,但我也有一個非託管的C++庫,我需要強烈地命名。經過一番搜索之後,我似乎無法找到簽署非託管dll的方式,即使是源代碼。這可以做到,如果有,我需要做什麼?

感謝您的任何建議或協助!

+1

你是如何引用它? – SLaks 2011-03-30 02:23:52

+1

您無法強制命名本機DLL。你的斷言是非常錯誤的,即使用EasyHook需要一個強名稱,這是沒有意義的。 – 2011-03-30 02:29:30

回答

3

我假設你使用P/Invoke來調用DLL。

你不需要(也不能)強烈地命名它。

強命名是一個.Net概念,適用於託管程序集(和C++/CLI);它對非託管庫沒有意義。

+0

我需要強簽名的原因是因爲它包含在我需要強烈簽名的.NET庫中。有沒有辦法簽署託管圖書館而無需說服它我需要簽署非託管圖書館(因爲這不能完成)? – 2011-03-30 02:26:43

+0

您可以簽署託管程序集;它不會抱怨P/Invoke導入。 – SLaks 2011-03-30 02:33:04

+0

我認爲問題在於,雖然EasyHook需要將dll放入GAC,但GAC只會接受強名稱的事物。 – 2011-03-30 02:46:59