「C++の応用 - C Sharp DLLの使用」の版間の差分

ナビゲーションに移動 検索に移動
4行目: 4行目:
<center>
<center>
'''表1. C++ EXEからC# DLLの関数を呼び出す方法'''
'''表1. C++ EXEからC# DLLの関数を呼び出す方法'''
{| class="wikitable"
{| class="wikitable" | style="background-color:#fefefe;"
|-
|-
! 方法 !! メリット !! デメリット
! style="background-color:#66CCFF;" | 方法  
! style="background-color:#66CCFF;" | メリット  
! style="background-color:#66CCFF;" | デメリット
|-
|-
| C++/CLIを使う || 最も簡単<br>VisualStudioのIntelliSenseも使用可能 || プロジェクトの設定で[CLIを使う]に変更する必要がある
| C++/CLIを使う || 最も簡単<br>VisualStudioのIntelliSenseも使用可能 || プロジェクトの設定で[CLIを使う]に変更する必要がある
|-
|-
| C# DLL側で関数をエクスポートする || [CLIを使う]に変更しなくてよい<br><code>GetProcAddress</code>関数が使用できるため、<br>よく知られた方法で関数を呼び出す事が出来る || C# DLL側のソースコードが無い場合は利用できない
| C# DLL側で関数をエクスポートする || [CLIを使う]に変更しなくてよい<br><code>GetProcAddress</code>関数が使用できるため、<br>よく知られた方法で関数を呼び出す事が出来る || C# DLL側のソースコードが無い場合は利用できない
|-
| C# DLLに対するC++/CLIの<br>ラッパープロジェクトを<br>作成して、C++ EXEから使う || [CLIを使う]に変更しなくてよい<br>COMを使用しない場合において、<br>元のプロジェクトの設定を変更したくない場合に使用可能 || やり方がスマートではない
|-
|-
| C# DLL側をCOM 参照可能にする || [CLIを使う]に変更しなくてよい || C++ EXEのコード量が増えて面倒である
| C# DLL側をCOM 参照可能にする || [CLIを使う]に変更しなくてよい || C++ EXEのコード量が増えて面倒である
|-
| C# DLLに対するC++/CLIの<br>ラッパープロジェクトを<br>作成して、C++ EXEから使う || [CLIを使う]に変更しなくてよい<br>COMを使用しない場合において、<br>元のプロジェクトの設定を変更したくない場合に使用可能 || やり方がスマートではない
|}
|}
</center>
</center>

案内メニュー