我有一个“C”“DLL”可以采取的结构作为输入,我必须调用的DLL从我的C#程序编组C结构
休耕是样品结构I具有在C,I具有在我的C#代码中编组这些结构
是我做的是正确还是错误?
实际的C结构:
typedef struct procedure
{
char code[8];
}procedure;
typedef struct datefield
{
char date[10];
}datefield;
typedef struct p45_clsgs
{
procedure p45_clsg;
datefield p45_clsgdte;
}p45_clsgs;
C#:
[StructLayout(LayoutKind.Sequential), Serializable]
struct procedure
{
//char code[];
[MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 8)]
public string code;
}
[StructLayout(LayoutKind.Sequential), Serializable]
struct datefield
{
//char date[10];
[MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 10)]
public string date;
}
struct p45_clsgs
{
public procedure p45_clsg;
public datefield p45_clsgdte;
}
是我的C#结构是正确的C结构?
什么是休耕C语言结构
typedef struct p45_cldxed24
{
procedure p45_cldxed[8];
}p45_cldxed24;
为什么不测试它?... – leppie 2012-02-08 06:04:11
那是一个很大的过程,我必须在c#中创建至少100个结构,所以在开始之前我想确认自己 – Raghuveer 2012-02-08 06:14:10
在这种情况下最好的建议是写每个结构体1一个,并比较C和C#中的大小。 – leppie 2012-02-08 06:27:21