13,007
回編集
33行目: | 33行目: | ||
<code>DllImport</code>属性には、DLLファイル名を指定する以外にも、下表のような引数を与えることができる。<br> | <code>DllImport</code>属性には、DLLファイル名を指定する以外にも、下表のような引数を与えることができる。<br> | ||
<center> | <center> | ||
{| class="wikitable" | {| class="wikitable" style="background-color:#fefefe;" | ||
|- | |- | ||
! 名称 !! | ! style="background-color:#66CCFF;" | 名称 | ||
! style="background-color:#66CCFF;" | 説明 | |||
! style="background-color:#66CCFF;" | 既定値 | |||
|- | |- | ||
| EntryPoint || 呼び出すDLLエントリポイントの名前または序数を指定する。<br>DLLの関数名とC#上で使用する関数名を異なる名前にする時に指定する。 | | EntryPoint || 呼び出すDLLエントリポイントの名前または序数を指定する。<br>DLLの関数名とC#上で使用する関数名を異なる名前にする時に指定する。 || | ||
|- | |- | ||
| CharSet || 文字列パラメータをメソッドにマーシャリングして、名前マングルを制御する方法を指定する。<br>文字コードの相互変換する時に指定する。<br>指定なしの場合は、<code>CharSet.Auto</code>となる。 | | CharSet || 文字列パラメータをメソッドにマーシャリングして、名前マングルを制御する方法を指定する。<br>文字コードの相互変換する時に指定する。<br>指定なしの場合は、<code>CharSet.Auto</code>となる。 || CharSet.Auto | ||
|- | |- | ||
| SetLastError || Win32エラー情報を維持するかどうか指定する。<br>指定なしの場合は、<code>false</code>となる。 | | SetLastError || Win32エラー情報を維持するかどうか指定する。<br>指定なしの場合は、<code>false</code>となる。 || FALSE | ||
|- | |- | ||
| ExactSpelling || エントリポイントの関数名を厳密に一致させるかどうか指定する。<br>指定なしの場合は、<code>false</code>となる。 | | ExactSpelling || エントリポイントの関数名を厳密に一致させるかどうか指定する。<br>指定なしの場合は、<code>false</code>となる。 || FALSE | ||
|- | |- | ||
| PreserveSig || 定義通りのメソッドのシグネチャを維持するかどうか指定する。 | | PreserveSig || 定義通りのメソッドのシグネチャを維持するかどうか指定する。 | ||
|- | |- | ||
| CallingConvention || アンマネージドコードを呼び出すための<u>エントリポイントの呼び出し規約</u>を、明示的に指定できる。<br>指定なしの場合は、<code>__stdcall</code>(StdCall)となる。<br>詳細は、下表を参照すること。 | | CallingConvention || アンマネージドコードを呼び出すための<u>エントリポイントの呼び出し規約</u>を、明示的に指定できる。<br>指定なしの場合は、<code>__stdcall</code>(StdCall)となる。<br>詳細は、下表を参照すること。 || StdCall | ||
|} | |} | ||
</center> | </center> | ||
67行目: | 69行目: | ||
<br> | <br> | ||
<center> | <center> | ||
{| class="wikitable" | {| class="wikitable" style="background-color:#fefefe;" | ||
|- | |- | ||
! 列挙子 ! | ! style="background-color:#66CCFF;" | 列挙子 | ||
! style="background-color:#66CCFF;" | 説明 | |||
|- | |- | ||
| Cdecl || 呼び出し元がスタックを消去する。<br>これを使用すると、<code>varargs</code>で関数を呼び出すことができる。<br>これは、<code>printf</code>関数等の可変長引数のメソッドの呼び出しで使用する。 | | Cdecl || 呼び出し元がスタックを消去する。<br>これを使用すると、<code>varargs</code>で関数を呼び出すことができる。<br>これは、<code>printf</code>関数等の可変長引数のメソッドの呼び出しで使用する。 |