マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

  • Windowsで使用できていたP/Invokeは、
    .NET Core、Linuxでも利用可能である模様。
  • それでは、アンマネージドコードをP/Invokeして、
    どのように.NET Coreをクロスプラットフォーム対応させるのか?

詳細

準備

  • 先ず、DLLやSOなどのアンマネージ・ライブラリを作成する。
  • ヤルとすれば、こんな感じか。

実装

  • ラッパー・ライブラリから、P/Invokeライブラリを呼び出す。
  • ラッパー・ライブラリはマネージドコード上でインターフェイスを定義。

分岐させる方法

Environment.OSVersionを使用して分岐させる。

分岐させる位置

  • ラッパー・ライブラリ内部で、
    Environment.OSVersionを使用して分岐させる。
  • ラッパー・ライブラリをWindows、Linuxの2系統を作成して、
    呼び出し元でEnvironment.OSVersionを使用して分岐させる。

※ 暗号化ライブラリでは、内部で
 CAPI(CSP)、CNG、OpenSSLなどのプロバイダが切り替えられるので、基本、
 前者のように、ラッパー・ライブラリ内部で分岐させるのが良いと考える。

参考

マネージドコードとアンマネージドコードのブリッジ

.NET Core on Linuxのポイント > P/Invoke


Tags: :Windows, :プログラミング, :.NET開発


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-12-08 (火) 11:46:03 (85d)