我public enum在C++接口中使用C#中定义的问题..NET项目暴露给COM,以便在C++和VB遗留软件中使用.
C#代码:
namespace ACME.XXX.XXX.XXX.Interfaces.Object
{
[Guid(".....")]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
[ComVisible(true)]
public interface TestInterface
{
void Stub();
}
[ComVisible(true)]
public enum TestEnum
{
a = 1,
b = 2
}
}
Run Code Online (Sandbox Code Playgroud)
C++代码:
编辑:在我导入tlb的项目的idl中.(importlib("\..\ACME.XXX.XXX.XXX.Interfaces.tlb"))
interface ITestObject : IDispatch
{
[id(1), helpstring("one")]
HRESULT MethodOne([in] TestInterface *a);
[id(2), helpstring("two")]
HRESULT MethodTwo([in] TestEnum a);
}
Run Code Online (Sandbox Code Playgroud)
在MethodTwo,我不断收到错误说明
在TestEnum附近除外类型规范
我假设有些东西我做得不对.MethodOne似乎正确地找到了参考.
在C++接口中引用.NET枚举对象有一些魔力吗?