我正在使用VS2010,我尝试使用C#dll来获取C ++中的任何枚举成员名称,
我的C#dll源代码:
namespace CSharpFuncion
{
public class CSFun
{
public string GetEnumName(Enum en)
{
return Enum.GetName(typeof(Enum), en);
}
}
}
我的C ++代码
#using "CSharpFuncion.dll"
using namespace CSharpFuncion;
CSFun ^ csFun = gcnew CSFun;
cout << csFun->GetEnumName(MyTestEnum::E_A) << endl;
错误信息:
cannot convert parameter from 'MyTestEnum' to 'System::Enum ^'
我该如何解决?
最佳答案
而不是
public enum MyTestEnum
{
E_A = 1,
E_B = 2
};
你需要做到
public enum class MyTestEnum
{
E_A = 1,
E_B = 2
};
因此,只需添加
class
关键字。并将
return Enum.GetName(typeof(Enum), en);
更改为return en.ToString()