BYTE* へのポインターを返す特定の COM 関数 (C++ で記述) があります。
IDL :
HRESULT calculate([in] BSTR request, [out] BYTE* result, [out] LONG* size);
COM C++ コード:
STDMETHODIMP Calc::calculate(BSTR request, BYTE* result, LONG* size)
{
//calc
int c_size = somesize();
char* c_result = somearray();
//copy to result
*size = c_size;
result = new BYTE[c_size+1];
memcpy(result, c_result, c_size);
*(result+c_size) = '\0';
//free and return
delete[] c_result;
return S_OK;
}
これは、.NET/C# 相互運用で次のようになります。
calculate(string request, [out] byte result, [out] int size)
私の質問:
2 番目のパラメーターとして渡す型は? C# が提供するバイトは? しかし、それはC++の「バイトへのポインタ」ですか? 大丈夫ですか?
C#で2番目のパラメータをバイト[]に変換する方法は?
ありがとう