2016-03-28 11 views
2

でvoid *型のパラメータを持つC++の関数を呼び出します。は、私は次のようになり、C++の機能を持つC#のアプリ

一方、私はこの機能をC#アプリケーションで呼び出す必要があります。私は、void型、int型、void型、int型のパラメータを入力するようにお願いしています。

私は危険な関数の中でのvoid *をしようと、

unsafe private void lstbox_packets_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    [...] 
    byte[] value = byteValuePackets[lstbox_packets.SelectedIndices[0]];  
    void* pValue = &value; 
    [...] 
} 

私はエラーを取得:8は、のアドレスを取るのサイズを取得、または宣言することはできません

エラー( 'byte []')

私はC++とポインタに慣れていませんが、C#でvoid *型を渡すと仮定していますか?

答えて

2

あなたはvalueのアドレスを取るべきではない、ともあなたはfixedステートメントを使用する必要があります。https://msdn.microsoft.com/en-:

fixed (void* pValue = value) 
{ 
    //... 
} 
+0

ここでは、固定の参照用のリンクです私/ライブラリ/ f58wzh21.aspx?f = 255&MSPPError = -2147217396 –

+0

@EliAlgranti権利、私はすでに私の答えでそれを提供しています。 –

+0

申し訳ありませんが、あなたは正しいです。固定キーワードのスタイリングは、それがリンクであることも明らかにしていません:) –

関連する問題