4

int %tmpC++/CLIをネイティブ C++に変換するにはどうすればよいint &tmpですか?

void test(int %tmp)
{
    // here I need int &tmp2 for another pure C++ function call
}
4

3 に答える 3

3

高度なユースケースは言うまでもなく、既存の回答はどちらもイン/アウトパラメータを適切に処理しません。

other_funcこれは、参照が戻った後に参照を保持しないすべての場合に機能するはずです。

void test(int %tmp)
{
    pin_ptr<int> pinned_tmp = &tmp;
    other_func(*pinned_tmp);
}
于 2011-06-07T12:53:38.200 に答える
1

これを試してみましたが、うまくいきます:

  //in the C++ dll
void testFunc( int& n )
{
  n = 5;
}

  //in the CLI app
[DllImport( "my.dll", EntryPoint = "?exported_name_here",
   CallingConvention = CallingConvention::StdCall )]
void TestFunc( int& );

void test( int% tmp ) 
{
  int n;
  TestFunc( n );
  tmp = n;
}
于 2011-06-06T09:30:58.023 に答える
0
void your_function(int *);
void your_function2(int &);

void test(int %tmp)
{
    int tmp2;
    your_function(&tmp2);
    your_function2(tmp2);
    tmp=tmp2;
}
于 2011-06-06T09:15:48.280 に答える