gpt4 book ai didi

c# - 在 C# 中重用 C 中的结构

转载 作者:行者123 更新时间:2023-11-30 17:10:55 24 4
gpt4 key购买 nike

是否可以从 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com