アンマネージドコードのクロスプラットフォーム化
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>.NETのクロスプラットフォーム対応]]
* 目次 [#b351b72c]
#contents
*概要 [#n3f0bbfd]
-Windowsで使用できていたP/Invokeは、~
.NET Core、Linuxでも利用可能である模様。
-それでは、アンマネージドコードをP/Invokeして、~
どのように.NET Coreをクロスプラットフォーム対応させるのか?
*詳細 [#w3761a31]
**準備 [#a1145c67]
-先ず、DLLやSOなどのアンマネージ・ライブラリを作成する。
-次いで、上記のアンマネージ・ライブラリ、若しくは、~
Win32 APIやsyscall, libc, etc.を呼出す、[[P/Invokeライブ...
-ヤルとすれば、こんな感じか。
--Win32~
https://github.com/OpenTouryoProject/OpenTouryo/tree/deve...
--POSIX~
...と言う名前空間に分割するのが良いかも。~
https://github.com/OpenTouryoProject/OpenTouryo/tree/deve...
**実装 [#bead8559]
-ラッパー・ライブラリから、P/Invokeライブラリを呼び出す。
-ラッパー・ライブラリはマネージドコード上でインターフェイ...
***分岐させる方法 [#z367aa31]
Environment.OSVersionを使用して分岐させる。
***分岐させる位置 [#w67a20d4]
-ラッパー・ライブラリ内部で、~
Environment.OSVersionを使用して分岐させる。
-ラッパー・ライブラリをWindows、Linuxの2系統を作成して、~
呼び出し元でEnvironment.OSVersionを使用して分岐させる。
※ 暗号化ライブラリでは、内部で~
[[CAPI(CSP)、CNG、OpenSSLなどのプロバイダが切り替えられ...
前者のように、ラッパー・ライブラリ内部で分岐させるのが...
*参考 [#f2e1dcb6]
**[[マネージドコードとアンマネージドコードのブリッジ]] [#...
**[[.NET Core on Linuxのポイント > P/Invoke>https://dotne...
----
Tags: [[:Windows]], [[:プログラミング]], [[:.NET開発]]
終了行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-[[戻る>.NETのクロスプラットフォーム対応]]
* 目次 [#b351b72c]
#contents
*概要 [#n3f0bbfd]
-Windowsで使用できていたP/Invokeは、~
.NET Core、Linuxでも利用可能である模様。
-それでは、アンマネージドコードをP/Invokeして、~
どのように.NET Coreをクロスプラットフォーム対応させるのか?
*詳細 [#w3761a31]
**準備 [#a1145c67]
-先ず、DLLやSOなどのアンマネージ・ライブラリを作成する。
-次いで、上記のアンマネージ・ライブラリ、若しくは、~
Win32 APIやsyscall, libc, etc.を呼出す、[[P/Invokeライブ...
-ヤルとすれば、こんな感じか。
--Win32~
https://github.com/OpenTouryoProject/OpenTouryo/tree/deve...
--POSIX~
...と言う名前空間に分割するのが良いかも。~
https://github.com/OpenTouryoProject/OpenTouryo/tree/deve...
**実装 [#bead8559]
-ラッパー・ライブラリから、P/Invokeライブラリを呼び出す。
-ラッパー・ライブラリはマネージドコード上でインターフェイ...
***分岐させる方法 [#z367aa31]
Environment.OSVersionを使用して分岐させる。
***分岐させる位置 [#w67a20d4]
-ラッパー・ライブラリ内部で、~
Environment.OSVersionを使用して分岐させる。
-ラッパー・ライブラリをWindows、Linuxの2系統を作成して、~
呼び出し元でEnvironment.OSVersionを使用して分岐させる。
※ 暗号化ライブラリでは、内部で~
[[CAPI(CSP)、CNG、OpenSSLなどのプロバイダが切り替えられ...
前者のように、ラッパー・ライブラリ内部で分岐させるのが...
*参考 [#f2e1dcb6]
**[[マネージドコードとアンマネージドコードのブリッジ]] [#...
**[[.NET Core on Linuxのポイント > P/Invoke>https://dotne...
----
Tags: [[:Windows]], [[:プログラミング]], [[:.NET開発]]
ページ名: