Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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++;到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 =

由于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 = 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"
那么,我做错了什么? 谢谢