我有一个给定的 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)
我的问题:
什么类型作为第二个参数传递?C# 提供的字节?但它是 C++ 中的“字节指针”吗?可以吗?
如何在 C# 中将第二个参数转换为 byte[]?
谢谢