如何从C#中的.h文件中读取常量

时间:2011-09-27 11:17:32

标签: c# c++

我想读取C#中的常量,这些常量是在.h文件中为C ++定义的。谁能告诉我如何在C#中执行此操作? C ++ .h文件看起来像:

#define MYSTRING1 "6.9.24 (32 bit)"
#define MYSTRING2 "6.8.24 (32 bit)"

我想在C#中读到这个?

2 个答案:

答案 0 :(得分:1)

您有两种选择:

1-创建一个包装这些宏的C ++包装器代码,将此代码导出到lib或dll并从C#中使用它。

2-从您的代码中读取/解析.h文件,并在运行时获取值。

答案 1 :(得分:1)

这是一个非常简单的答案,您可以在.h文件的每一行上使用它来提取字符串值。

string GetConstVal(string line)
{
  string[] lineParts = string.Split(line, ' ');
  if (lineParts[0] == "#define")
  {
    return lineParts[2];
  }
  return null;
}

因此,只要它返回null,就没有常量。现在请记住,它只获取常量的值,而不是名称,但您可以轻松修改代码以通过out参数等返回该值。

如果你想表示其他数据类型,比如整数等,你必须要考虑一些聪明的东西,因为C ++中的宏并不真正算作类型安全。