【发布时间】:2012-10-10 10:37:40
【问题描述】:
我目前正在将一些本机代码移植到 C#,其中包括各种结构、委托、枚举和外部方法调用。
结构中的某些字段期望应用某些常量。列出结构中的常量而不是单独的位置似乎是合乎逻辑的,因为这应该使所有内容都井井有条,但我不确定在编组/与本机调用的互操作性期间这会对结构产生什么影响。
比如说我的结构是这样定义的:
[StructLayout(LayoutKind.Sequential)]
public struct NATIVE_STRUCTURE
{
public int Value;
}
此实例中的值可能需要以下常量之一
VALUE1 = 0x0001;
VALUE2 = 0x0002;
这样写这些结构对我来说安全吗:
[StructLayout(LayoutKind.Sequential)]
public struct NATIVE_STRUCTURE
{
public int Value;
public const int VALUE1 = 0x0001;
public const int VALUE2 = 0x0002;
}
任何人都可以阐明这可能如何影响运行时的代码(如果有的话)。谢谢。
【问题讨论】:
标签: c# .net pinvoke language-interoperability