托管代碼如何調用非托管代碼(c sharp如何調用c++代碼)?
兩種常用的做法:
下載:
http://download.microsoft.com/download/f/2/7/f279e71e-efb0-4155-873d-5554a0608523/CLRInsideOut2007_01.exe
1. COM interop
具體操作:
a. 用atl寫com服務程序
b. 使用Tlbimp將atl寫的com程序轉換成 COM DLL
用如下命令:
tlbimp 你寫的com.dll
tlbimp是 .NET Framework SDK中附帶的類型庫導入程序。用這個命令即是把生成一個非托管com dll的托管包裝。
c. 托管客戶端非常簡單
直接new一下,然后調用對應的方法即可。
2. P/Invoke
a. 在托管客戶端增加一條 DllImport語句和一個方法的調用。
介紹一個P/Invoke網站,http://pinvoke.net/
這個網站主要是一個wiki,允許開發者發現,編輯,增加PInvoke的簽名,用戶自定義類型和從托管代碼(指c#和VB.net開發語言)訪問win32和其他非托管api的信息。
世界各地的.Net開發者可以很容易分享自己有價值的東西給社區,