gpt4 book ai didi

c# - 结构 - System.Runtime.Interoptservice C++ 与 C#

转载 作者:行者123 更新时间:2023-11-27 22:54:48 24 4
gpt4 key购买 nike

我在 C++ 中得到了一个结构,想在 C# 中使用它。几个月以来,它运行良好。现在,我稍微更改了结构,但一切都不再起作用:

附上C++定义的结构体:

typedef struct TCell{
struct TPoint P;
struct TFace** ppFace;
struct TNode** ppNode;

double Volume;
unsigned int nFace;
unsigned int nNode;
unsigned long Index;
unsigned long Index2;

struct TFamily* pFamily;
}TCell;

在 C# 中附加结构:

[StructLayout(LayoutKind.Sequential)]
public struct TCell
{
public TPoint P;
public TFace** ppFace;
public TNode** ppNode;

public double Volume;
public UInt16 nFace;
public UInt16 nNode;
public UInt32 Index;
public UInt32 Index2;

public TFamily* pFamily;
}

注释变量 nNodeppNode,一切正常。取消注释此变量,C# 在请求 nNode 时显示 Index 的值。

在 C++ 中输出是正确的。

我使用的是 Visual Studio Express 2015。

sizeof(TCell) 在 C# 和 C++ 中返回 72

有什么想法吗?

非常感谢。

最佳答案

您在 C++ 中有 unsigned int,但在 C# 中有 UInt16。您可能打算使用 UInt32

关于c# - 结构 - System.Runtime.Interoptservice C++ 与 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34322242/

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