我想读取C#中的常量,这些常量是在.h文件中为C ++定义的。谁能告诉我如何在C#中执行此操作? C ++ .h文件看起来像:
#define MYSTRING1 "6.9.24 (32 bit)"
#define MYSTRING2 "6.8.24 (32 bit)"
我想在C#中读到这个?
答案 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 ++中的宏并不真正算作类型安全。