C# 如何使用C中使用ref-sbyte的方法处理COM引用#
我对本机ATL COM项目中的方法有以下IDL定义:C# 如何使用C中使用ref-sbyte的方法处理COM引用#,c#,.net,com,interop,atl,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 sbyt
[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
参数作为字符串?您需要添加该属性。这确保CHAR
指针被视为字符串:
[id(1)] HRESULT Create([in, string] CHAR* a, [out] Details* b);
可能会让你开始(在另一个方向上也是一样)@dlatikay我在这里尝试从托管到本机,而不是从另一个方向…我想说的是,它将以同样的方式工作:重写ATL函数,使其接受BSTR,它将映射到c#中的
string
。