我需要使用this庫(Interception
)。它寫在C++
。簡而言之,它可以讓你操縱鍵盤或鼠標的輸入。 我需要做的是使用C#
中的一些呼叫。如何使用C#中的C++代碼?
我不確定遵循哪條路。到目前爲止,我讀過您可以使用Pinvoke
在C#
內使用C++
代碼。
我有一個關於PInvoke
許多問題:
1)不要Pinvoke
庫需要在一個特定的系統路徑(例如system32
)被發現?
我讀過,獲得正確的PInvoke
簽名可以是硬且容易出錯,因爲我不能在找到Interception
任何PInvoke
簽名PInvoke.net,
2)這是否意味着我應該停止使用PInvoke
?
我也見過,但沒有深入細節,在Visual Studio中,當您創建項目時,您可以創建Visual C++->CLR->Class Library
。
3)我應該使用它來建立一個鏈接Interception
?這個裝配可以用於C#
嗎?
無論如何,如果C#
替代Interception
存在,我會用它來代替。
從快速瀏覽起,它看起來像p/invoke應該可以,因爲它是一個使用句柄的平面API,就像winapi本身一樣,並且不會對類進行成員函數調用。當然,C++/CLI包裝器也是一個不錯的選擇。 –
另外,如果不提供完整路徑,則p/invoke將使用默認的DLL搜索路徑。所以把DLL放在你的程序目錄中應該很好。 –
看看[SWIG](http://www.swig.org/)了嗎?它可以在你的C#代碼可以使用的C++代碼周圍生成一個包裝API。 –