您好我正在尝试创建CSP中的以下结构并将其编组到C ++中并维护链接引用。我不确定如何在C#中定义这个结构?在C ++中,结构必须如下所示,并保持const引用。
// C++
struct {
int a; // my value
const int& b = a; // my reference to a
}
有人知道这是否可行?
感谢。
这更能代表我想要实现的目标,正如@Hans指出的那样,它不是合法的C ++,但也许有人可以建议更好的路径? system_t
在C ++或C#中生成并传递给C ++。我最好的猜测:(如果这是一个好的设计模式)是初始化C ++中system_t
构造函数中的所有引用。至于从C#编组,它会变得复杂。
struct system_t
{
float sysSampleRate = 112500.0f; // Sample rate from receivers.
// Illegal statement @Hans
struct tvg_t // tvg_t is passed to tvg processor
{
float tvgLinearGain;
const float& tvgSampleRate = sysSampleRate; // Get the rate from system.
// Illegal statement @Hans
} tvg; // Nested tvg_t in system_t.
//... Many other structures and variables ..//
};
我想找到合适的设计模式,而不是放弃这种模式,转而采用扁平结构或将system_t
传递给每个模块。
答案 0 :(得分:1)
这应该有效:
[StructLayout(LayoutKind.Sequential)]
public struct MyCStruct {
public int a;
public IntPtr b;
}