小编Ste*_*gra的帖子

C#库中的C#Enum

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枚举对象有一些魔力吗?

c# c++ com enums

7
推荐指数
1
解决办法
255
查看次数

标签 统计

c# ×1

c++ ×1

com ×1

enums ×1