P/Invokeを使用して明示的に64ビットの.NETアプリケーションを使用して64ビットのネイティブライブラリと対話する場合、DllImport
属性のCallingConventionプロパティは実質的に無視されますか?64ビット.NETアプリケーションでCallingConventionは無視されますか?
"従来の" x86では、呼び出し元や呼び出し先がスタック変数をクリーンアップする方法(関数自体が特定のCPUレジスタなどを使用する方法も含む)を指定する必要があるため、これを尋ねます。私が理解する限り、x64には単一の慣習(__fastcall
)しかありません(最近追加されたのは__vectorcall
です)。
CallingConvention
プロパティに設定した内容に関係なく、CLRはただちに進み、__fastcall
x64規約で関数呼び出しをマーシャリングしますか?