私はWindowsモバイル開発に関して疑問を抱いていますが、C#アプリケーションでCまたはC++ Apisを使用できますか?どのようにしなければならないのでしょうか?C#アプリケーションでのCまたはC++ APIの使用
答えて
Cは非常に簡単ですが、C++はマングリングのために複雑です。このdescriptionを読んでください。
いわゆる「P/Invoke」呼び出し(「プラットフォーム呼び出し」)によって「通常の」C-APIを使用できます。これには、Windows APIと通常の関数呼び出しをエクスポートするその他のライブラリが含まれます。しかし、オブジェクトを返すC++ DLLについてはわかりません。これはもっと難しいかもしれない...?
Windowsでは、いつでもCOMライブラリとして登録できる方法で.NET DLLを作成できます。次に、COMオブジェクト(VB6、Delphi、C++など)の使用をサポートする任意の言語の他のCOMオブジェクトと同様に、公開された.NETクラスを使用できます。
しかし、Windows Mobileでは動作しないようです。
ので:任意のプラットフォーム上のC#から 使用C-APIを - はい、何の問題は、P /起動する方法Windows上でC++から 使用C#のDLLを学ぶ - はい、COMはCから 使用C#のDLLをオブジェクトを作成する必要はありません++ Windows Mobile上で動作しないAFAIK
エクスポートされたC関数を持つネイティブDLLがある場合は、P/Invokeメカニズムを使用して簡単に使用できます。
しかしC++クラスは難しく、C++からエラーが発生しやすくなります。このためには、C++/CLIで管理されたアセンブリラッパーを作成するほうがずっと良いでしょう。これにより、C#から使用できる.NETアセンブリが作成され、通常のC++プロジェクトと同様にC++ライブラリを使用することができます。
初めてP/Invokeメカニズムを使い始めたとき、私は本当に有益な例を見ていました。多くのWin32 C-API関数 "P/Invoking"はpinvoke.net
に記載されています- 1. C/C++アプリケーションのAndroid ADB API
- 2. CドライブまたはC++用GoogleドライブAPI
- 3. C#アプリケーションでLinkedIn APIを使用する
- 4. UWP c#アプリケーションの内部メッセージバス用のC#UWP api
- 5. アンマネージドC++ Win32 APIまたはC#?
- 6. Linux用のObjective-Cアプリケーションのコンパイル(APIカバレッジ)
- 7. Active Directoryグラフクライアント:C#APIを使用したアプリケーションの削除
- 8. Google Voice APIを使用したC#.NETアプリケーションのコンパイル
- 9. (C++)Weather APIの使用
- 10. APIを使用したElipse C/C++ビルド情報へのアクセス
- 11. Windows MobileでのC#とCまたはC++の使用の違い
- 12. C#でEchoSign APIを使用
- 13. C#WindowsフォームアプリケーションのWindows APIを使用してC#アプリケーション以外のテキストボックスを読む
- 14. C++でのCの使用
- 15. Windows 7でのC/C++アプリケーションのクロスコンパイル(LinuxでMinGWを使用)
- 16. C++アプリケーションでのCライブラリの標準出力の使用
- 17. C#アプリケーションをDLLに変換してC#アプリケーションで使用する
- 18. C++アプリケーションでのC MPI構文の使用
- 19. ビジュアルスタジオ用XBee ZigBee API C++/C
- 20. CでのGoogle Channel APIの使用#
- 21. C#Windowsアプリケーションでのカスタムカラーカーソルの使用
- 22. APIを使用した仮想ネットワークアダプタドライバ、好ましくはc#api
- 23. Windows上のC/C++用の並列API
- 24. エラー処理の管理1(C++、C、C++/CLI、C#の)私はひどく書かれたサードパーティ(C/C++)APIを使用しています
- 25. z/OSのC++でCソケットAPIを使用する方法
- 26. C APIを使用したOpenCV C++プログラムcvClearMemStorageヌルポインタエラー
- 27. CreateDirectory windows APIの使用法をC++で
- 28. C#、C++/CLIおよびアンマネージC++を使用するアプリケーション用のメモリプロファイリングツール
- 29. C++ BuilderのVisual C++アプリケーション
- 30. Windows用のC#コードエディタコントロールは、アプリケーション