我對Windows Mobile開發有些疑問,是否有可能在C#應用程序中使用c或C++ Apis,反之亦然?如果有可能如何做呢?在C#應用程序中使用C或C++ API
1
A
回答
0
C很容易,C++更復雜,因爲mangling。閱讀description。
1
您可以通過所謂的P/Invoke調用(「平臺調用」)使用「普通」C-API。這包括Windows API和導出普通函數調用的其他庫。但是,我不知道返回對象的C++ DLL。這可能會更難......?
在Windows上,您始終可以通過可以註冊爲COM庫的方式創建.NET DLL。然後,您可以像使用任何支持使用COM對象的語言(例如VB6,Delphi,C++等)的任何其他COM對象一樣使用公開的.NET類。
但是,這似乎不適用於Windows Mobile!
所以: 使用C-API的C#中的任何平臺上 - 是的,沒有問題,學習如何的P/Invoke在Windows 在C++中使用C#DLL的 - 是的,需要創建COM從C對象 使用C#的DLL ++在Windows Mobile上 - AFAIK不起作用
1
如果您有一個帶有導出C函數的本地DLL,您可以通過P/Invoke機制輕鬆使用它們。
但是,C++類相當困難,而且很容易出錯,從C++中使用。爲此,在C++/CLI中編寫託管程序集包裝器會更好。這將生成一個.NET程序集,您可以從C#中使用該程序集,並且可以像使用常規C++項目一樣使用C++庫。
2
當我第一次開始使用P/Invoke機制時,我發現看例子確實有幫助。結果發現,「P/Invoking」許多Win32 C-API函數描述於pinvoke.net
相關問題
- 1. 使用API從MVC應用程序C#
- 2. 如何在目標C(Xcode)中使用C,C++程序或類?
- 3. 在C#中使用C++ API
- 4. 如何在C#中使用應用程序的C++代碼
- 5. 如何使用'C'或'C++'爲windows創建獨立程序或應用程序
- 6. 在iPhone應用程序中使用Subversion C API的教程?
- 7. 在C++應用程序中使用DLL
- 8. 在C#應用程序中使用ch.ethz.ssh2
- 9. C#在應用程序中使用WIPMania
- 10. 在C#應用程序中使用「for(;;)」?
- 11. 應用程序使用C#
- 12. 使用C#應用程序
- 13. C#Windows應用程序中的PayPal API
- 14. 在C#UWP應用程序中何時使用API調用
- 15. 在C#程序中使用C++常量
- 16. 在C#應用程序中使用LinkedIn API
- 17. C++與C++ Lucene庫C++應用程序
- 18. 在C#應用程序中使用現有的C++代碼
- 19. 如何在C#應用程序中使用C++/CLI
- 20. 在C++/CLI(WinForms)應用程序中使用C#WinForms控件
- 21. 如何在C/C++應用程序中使用Windows窗體?
- 22. 在C#Metro應用程序中使用C++ CLR庫
- 23. 在C#應用程序中導入並使用C++ DLL函數
- 24. 在C#應用程序中使用C++類DLL
- 25. 在C++應用程序中使用c類和頭文件
- 26. 在C++應用程序中使用C#dll
- 27. BadImageFormatException在C#應用程序中使用C++/CLI時
- 28. Socket服務器應用程序的選擇:C/C++或C#
- 29. 如何在C#應用程序中嵌入或使用工具?
- 30. 使用C++ 11 C#程序