1
SWIGを使用してC++ enumメンバーをC#にラップすることはできません。 C++ enumメンバーのサイズはInt32を超えています。 C#では、enumメンバーのデフォルトの型はInt32なので、コンパイルエラーです。私はinstructionsに従いますが、私は問題を解決することはできません。SWIG:enum to c#
MyClass.h
class MyClass
{
public:
MyClass() {}
~MyClass() {}
enum BigNumbers
{
big = 0x80000000, bigger
};
};
MyClass.i結果
%module cpp
%{
#include "MyClass.h"
%}
%include "MyClass.h"
%typemap(csbase) BigNumbers "uint"
%inline %{
enum BigNumbers { big=0x80000000, bigger };
%}
私はコンパイルエラーcannot implicitly convert type 'uint' to 'int'
を引き起こす生成されたC#ラッパーのメンバーを、従ってもらいますMyClass.cs別のファイルに
public enum BigNumbers {
big = 0x80000000,
bigger
}
とグローバルなuint列挙:
BigNumbers.cs
public enum BigNumbers : uint {
big = 0x80000000,
bigger
}
私は、MyClassののメンバーとしてMyClass.cs
でそれを取得したいしながら。
よろしくお願いいたします。
あなたは、私はちょうどSWIGを学んでいる 'enum' – juharr
のための基本となる型を指定することができます。あなたはもう少し詳しく書くことができますか? – Vasliy
私はSWIGについて何も知らないが、この 'enum MyEnum:long {whatever = long.MaxValue}'のような列挙型を定義することができる。 – juharr