如何使用在C#中使用ref sbyte的方法处理COM引用

时间:2017-03-29 18:08:39

标签: c# .net com interop atl

我的本​​机ATL COM项目中的方法有以下IDL定义:

[id(1)] HRESULT Create([in] CHAR* a, [out] Details* b);

我在C#项目中添加了对COM对象的引用,并为我生成了此函数的存根,我需要调用它:

void Create(ref sbyte a, out SampleNativeLib.Details b)

我原本希望该库允许我在此函数中使用字符串作为ref sbyte a参数。

如何调用它生成的Create方法?是否有任何替代方法让它接受ref sbyte a参数作为字符串?

1 个答案:

答案 0 :(得分:1)

您需要添加string属性。这可确保将CHAR指针视为字符串:

[id(1)] HRESULT Create([in, string] CHAR* a, [out] Details* b);