我的本机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
参数作为字符串?
答案 0 :(得分:1)
您需要添加string属性。这可确保将CHAR
指针视为字符串:
[id(1)] HRESULT Create([in, string] CHAR* a, [out] Details* b);