2009-11-16 6 views
0

J'ai besoin de convertir une structure C++ complexe en C# Structure, j'ai converti d'autres structures en C#, celle-ci contient un tableau bidimensionnel qui est ce que le problème comment le changer, ici est ma structure,Comment faire pour convertir une structure C++ en structure C#

c'est une autre structure, que je convertis correctement,

C++:

typedef struct 
{ 
    BYTE    sSerialNumber[DH_SERIALNO_LEN];  BYTE    byAlarmInPortNum;  
    BYTE    byAlarmOutPortNum; 
    BYTE    byDiskNum; 
    BYTE    byDVRType; 
     BYTE    byChanNum;   
} NET_DEVICEINFO, *LPNET_DEVICEINFO; 

C#:

public struct NET_DEVICEINFO 
    { 
     [MarshalAs(UnmanagedType.ByValArray, SizeConst = 48)] 
     public byte[] sSerialNumber;  
     public byte byAlarmInPortNum;  
     public byte byAlarmOutPortNum;  
     public byte byDiskNum;    
     public byte byDVRType;    
     public byte byChanNum;    
    } 

Et cette structure qui je veux convertir, cela a Barette 2 dim C++:

typedef struct 
{ 
    DWORD    dwSize; 
    DWORD    dwDecProListNum;  
    char    DecProName[DH_MAX_DECPRO_LIST_SIZE][DH_MAX_NAME_LEN]; 
    DH_485_CFG   stDecoder[DH_MAX_DECODER_NUM]; 
    DWORD    dw232FuncNameNum;  
    char    s232FuncName[DH_MAX_232FUNCS][DH_MAX_NAME_LEN]; 
    DH_RS232_CFG  st232[DH_MAX_232_NUM]; 
} DHDEV_COMM_CFG; 

et voici mon essai en C#, mais il me donne une erreur, C#:

[StructLayout(LayoutKind.Sequential, Pack = 2, CharSet = CharSet.Auto)] 
    public struct DHDEV_COMM_CFG 
    { 
     public uint dwSize; 
     public uint dwDecProListNum;  
     [MarshalAs(UnmanagedType.ByValArray, SizeConst = 100)] 
     public string[] DecProName;        
     [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)] 
     DH_485_CFG[] stDecoder; 
     public uint dw232FuncNameNum; 
     [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] 
     public string[] s232FuncName;       
     [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] 
     public DH_RS232_CFG[] st232;        
    } ; 

S'il vous plaît me dire comment .... ce

Par Bala

+0

Cela vous dérange-t-il le formatage correctement? – Gonzalo

+1

À quelle erreur faites-vous référence? Est-ce qu'il compile? Ou avez-vous une erreur d'exécution? –

Répondre

0

Je sais t il est un peu inutile 6 ans plus tard, mais en tout cas, le convertisseur de here a bien fonctionné pour moi ...