0

我有一个给定的 COM 函数(用 C++ 编写),它返回一个指向 BYTE* 的指针

身份证

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)

我的问题:

  1. 什么类型作为第二个参数传递?C# 提供的字节?但它是 C++ 中的“字节指针”吗?可以吗?

  2. 如何在 C# 中将第二个参数转换为 byte[]?

谢谢

4

0 回答 0