【发布时间】:2011-07-19 12:33:15
【问题描述】:
但我正在 C++ CLI 中为我们的应用程序编写一个包装器,以保存一些新部分(用 C# 编写)并轻松访问旧的本机库。因此,我需要将一些结构从 C# 传递到 C++。这些结构在 C++ Cli (dotnet) 和 C++ 中定义。
例子:
\\C+++
typedef struct
{
INFO16 jahr ;
INFO8 monat ;
INFO8 tag ;
INFO8 stunde ;
INFO8 minute ;
}
SDATUM;
\\c++ cli
[StructLayout(LayoutKind::Explicit)]
public value struct SDATUM
{
public:
[FieldOffset(0)]
UInt16 jahr;
[FieldOffset(2)]
Byte monat;
[FieldOffset(3)]
Byte tag;
[FieldOffset(4)]
Byte stunde;
[FieldOffset(5)]
Byte minute;
};
现在我在 C++ cli 中提供了一些函数,它们以按值传递、按引用 (sdatum%) 和指针 sdatum* 的形式将这种类型作为 dotnet 类型 SDATUM 接受,就像对应的本机函数一样。我需要什么来转换/转换这些结构?
【问题讨论】: