SWIG C++;到C#:不';使用命名空间正确包装枚举 我试图用SWIG(2.0.11/3.0.8)将C++项目封装到C ^,并且我面临枚举的问题,这里是我所拥有的简化代码: 强> MynUM。HPP -C++侧: namespace NS1 { namespace NS2 { enum myValue { VALUE_ONE = 1, VALUE_TWO = 2, VALUE_THREE = 3, VALUE_FOUR = 4 }; } } enum myEnum { ONE = NS1::NS2::VALUE_ONE, TWO = NS1::NS2::VALUE_TWO, THREE = NS1::NS2::VALUE_THREE, FOUR = NS1::NS2::VALUE_FOUR };
由于SWIG,我得到了两个C#文件,每个枚举一个 myValue.cs-看起来正确,这里没有问题SWIG C++;到C#:不';使用命名空间正确包装枚举 我试图用SWIG(2.0.11/3.0.8)将C++项目封装到C ^,并且我面临枚举的问题,这里是我所拥有的简化代码: 强> MynUM。HPP -C++侧: namespace NS1 { namespace NS2 { enum myValue { VALUE_ONE = 1, VALUE_TWO = 2, VALUE_THREE = 3, VALUE_FOUR = 4 }; } } enum myEnum { ONE = NS1::NS2::VALUE_ONE, TWO = NS1::NS2::VALUE_TWO, THREE = NS1::NS2::VALUE_THREE, FOUR = NS1::NS2::VALUE_FOUR };,c#,c++,enums,namespaces,C#,C++,Enums,Namespaces,由于SWIG,我得到了两个C#文件,每个枚举一个 myValue.cs-看起来正确,这里没有问题 public enum myValue { VALUE_ONE = 1, VALUE_TWO = 2, VALUE_THREE = 3, VALUE_FOUR = 4 } 和myEnum.cs-有问题的一个 public enum myEnum { ONE = NS1::NS2::VALUE_ONE, TWO = NS1::NS2::VALUE_TWO, THREE =
public enum myValue {
VALUE_ONE = 1,
VALUE_TWO = 2,
VALUE_THREE = 3,
VALUE_FOUR = 4
}
和myEnum.cs-有问题的一个
public enum myEnum {
ONE = NS1::NS2::VALUE_ONE,
TWO = NS1::NS2::VALUE_TWO,
THREE = NS1::NS2::VALUE_THREE,
FOUR = NS1::NS2::VALUE_FOUR
}
正如您所看到的,第二个枚举的值仍然有名称空间,对于C++来说是很好的,但在编译时,不是C,这是:
cs(13,17,13,19):错误CS7000:意外使用别名 名字 SWIG命令:COMMAND "${SWIG_ROOT}/swig" -csharp -c++ -I${SWIG_INCLUDE_DIR} -o "CSharp_wrap.cxx" "CSharp.i"
COMMAND "${SWIG_ROOT}/swig" -csharp -c++ -I${SWIG_INCLUDE_DIR} -external-runtime "swigcsharprun.h"
那么,我做错了什么?
谢谢