2013-09-26 117 views
0

这是给我在C:C指针结构 - 缓冲区指向另一个结构。如何在C#中?

CDCAInput := PTCDCAInput(@CDCAr); 

我只告诉: TCDCAInput用于通过函数的结构的指针传递的交易所需的附加输入字段。它指向的缓冲区将被填充以响应CDCAResult结构。

我认为@CDCAr是CDCAResult结构的一个实例。但是不完全确定整行代码的含义。

对于像我这样不懂C的人......我无法想象如何在C#中编写它的等价物。

任何帮助,非常感谢。 感谢

+3

这看起来不像C,更像帕斯卡。 –

+0

C中没有':='运算符,所以这不是C ......除非你使用了一些非常讨厌的宏。 – cdhowie

+0

我也没有帕斯卡的经验:) 函数是在C中,这是唯一提供的代码。 非常感谢您的帮助,我猜这就是它在Pascal中的设置。 是否有可能在C#中使用Pascal中的示例进行上述操作? –

回答

1

我不知道C#,所以我不能完全回答这个问题,但可以说明一些事情,可以帮助...

它在Pascal和德尔福共同约定来命名结构类型(记录和类)以“T”开头。另一个约定是命名以“P”开头的指针类型。

使用这些约定,可能有一个名为TCDCAInput的Record(类似于C结构)类型,并且还有一个名为PTCDCAInput的类型,声明为指向TCDCAInput的指针。

@是帕斯卡的“地址”运算符,它给出了变量的地址。

帕斯卡尔类型强制转换有这样的语法:TypeName(VariableName)

所以,总体来说,该行:

CDCAInput := PTCDCAInput(@CDCAr);

方式:施放CDCAr变量的地址给PTCDCAInput类型,并指定该值到CDCAInput变量。