是否可以从 C dll 导入 C# 结构定义?
在我看到的所有示例中,都是在 C# 中重新定义结构。如果结构发生变化怎么办?我需要在项目中的两个位置进行更改...
struct MyCStruct
{
unsigned long A;
unsigned long B;
unsigned long C;
};
在 C# 中:
[StructLayout(LayoutKind.Sequential)]
internal struct MyCStructAgain
{
public uint A;
public uint B;
public uint C;
}
如果无法重用定义,那是为什么?
谢谢
最佳答案
您可以将您的结构编译为 C++/CLI,其中编译器为您生成托管的对应项,然后您可以引用它们。您需要一个 ifdef 来添加值以使其成为 .NET 结构。
#ifdef CLIEXPORT
#define value
#endif
CLIEXPORT struct MyCStruct
{
unsigned long A;
unsigned long B;
unsigned long C;
};
关于c# - 在 C# 中重用 C 中的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11718017/