C++/CLI メソッド がManagedMethod
あり、ネイティブ メソッドによって変更される出力引数が 1 つあります。
// file: test.cpp
#pragma unmanaged
void NativeMethod(int& n)
{
n = 123;
}
#pragma managed
void ManagedMethod([System::Runtime::InteropServices::Out] int% n)
{
pin_ptr<int> pinned = &n;
NativeMethod(*pinned);
}
void main()
{
int n = 0;
ManagedMethod(n);
// n is now modified
}
ManagedMethod
戻ると、期待どおりに の値がn
変更されています。これまでのところ、これをコンパイルすることができた唯一の方法はpin_ptr
insideを使用するManagedMethod
ことなので、実際に固定することはこれを行うための正しい/唯一の方法ですか? または、に渡すよりエレガントな方法はありn
ますNativeMethod
か?