我是C#程序員,並且不與本地介紹。 我有一個本地DLL,&心中已經用在我的項目,但會導致一些類型的託管代碼行不通的。 我會準備在本地(C++)一個DLL,我要在事件occure,然後知道我的託管代碼;我怎樣才能做到這一點?創建本地DLL
Q
創建本地DLL
1
A
回答
1
如果您的本機DLL的API允許您將函數指針註冊爲要在引發事件時調用的回調函數,則可以將常規C#委託函數作爲函數指針(Marshal.GetFunctionPointerForDelegate
)進行編組,然後僅通過通過註冊託管代理的P/Invoke。
1
如果你想處理您的C#代碼本土賽事,那麼我認爲最好的辦法是寫一個C++/CLI DLL這將作爲工作的C++本地DLL和C#DLL之間的中間層。你可以處理事件在中間庫,並通過他們對這種方式要由託管DLL再次抓獲。
另一種選擇是寫你的本地DLL作爲一個COM DLL,並從那裏籌集COM派遣活動。通過創建此COM DLL的Interop,您可以直接在C#DLL中捕獲事件。但是如果你不熟悉COM編程,這條路線的學習曲線非常陡峭。
相關問題
- 1. 創建pdfium DLL
- 2. 創建dll文件
- 3. DLL創建類型
- 4. 創建.dll文件
- 5. 創建本地用戶
- 6. 創建本地SVN分支
- 7. 本地git回購創建
- 8. 創建本地maven倉庫
- 9. 如何創建本地化
- 10. 創建iOS本地通知
- 11. Subversion創建本地鏡像
- 12. 創建本地Android服務
- 13. 無法創建本地ArcGISDynamicMapServiceLayer
- 14. 在本地DLL中包裝CLR DLL
- 15. 從.net dll創建java的.dll文件
- 16. 從32位C DLL創建64位DLL
- 17. JNA,本地DLL,Web服務
- 18. System.Security.SecurityException訪問本地DLL時
- 19. 創建網頁的本地副本
- 20. 無法創建Magento的本地副本
- 21. 使用MASM32創建DLL
- 22. 使用cygwin創建dll時
- 23. c中創建dll文件#
- 24. 用Visual Studio創建.dll
- 25. 爲Labview創建一個DLL
- 26. 在DLL中創建線程
- 27. 從MATLAB創建一個DLL
- 28. 問題,創建DLL文件
- 29. XAMARIN Forms創建綁定DLL
- 30. windows embedded ce 6.0 dll創建