如何使用在 C# 中使用 ref sbyte 的方法处理 COM 引用
How to treat COM references with methods that use ref sbyte in C#
我的本机 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
参数作为字符串?
您需要添加 string 属性。这确保 CHAR
指针被视为字符串:
[id(1)] HRESULT Create([in, string] CHAR* a, [out] Details* b);
我的本机 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
参数作为字符串?
您需要添加 string 属性。这确保 CHAR
指针被视为字符串:
[id(1)] HRESULT Create([in, string] CHAR* a, [out] Details* b);