typedef struct {
int hr_min_sec; //1st byte:second, 2nd byte:minute, 3rd byte:hour
int micro_sec;
} S_Time;typedef struct {
int frame_id;
char DLC, RTR, FF;
unsigned char frame_data[8];
S_Time frame_time; 
} S_CANframe;
这是我定义的结构体,在VC中的,同时还有这个函数:int CAN_frm_recv(S_CANframe **frame_buf),这个函数已经编写在VC中的MW70X.dll中了
请问一下,这个函数我在C#中怎么调用这个函数?
哪位大侠帮帮忙啊

解决方案 »

  1.   

    不知道这样可以么:
    [StructLayout(LayoutKind.Sequential)]   
    public   struct   S_Time   
    {   

    public   int   hr_min_sec;  
    public   int   micro_sec;  
    } [StructLayout(LayoutKind.Sequential)]   
    public   struct   S_CANframe   
    {   

    public   int   frame_id;  
    public   char  DLC, RTR, FF; 
            public   uchar   frame_data[8];  
                            public   S_Time  frame_time
    }
      

  2.   


    [StructLayout(LayoutKind.Sequential)]  
    public  struct  S_Time  
    {  
      public  int  hr_min_sec;  
      public  int  micro_sec;  
    } [StructLayout(LayoutKind.Sequential)]  
    public  struct  S_CANframe  
    {  
      public  int  frame_id;  
      public  sbyte DLC, RTR, FF; 
      public  byte frame_data[8];  
      public  S_Time  frame_time 
    }[DllImport("DataInterface.dll", EntryPoint = "CAN_frm_recv")]
    public static extern int CAN_frm_recv([In,Out]S_CANframe frame_buf);
    试一下吧!
      

  3.   

    要么就是这样,我也记不清了,你试下吧![DllImport("DataInterface.dll", EntryPoint = "CAN_frm_recv")]
    public static extern int CAN_frm_recv(ref S_CANframe frame_buf);