我有一個「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