dll中输出函数
extern "C" _declspec(dllexport) int __stdcall Read(HANDLE PortHand,DataComm * pAryDataComm,
SendData * pArySendData);
其中DataComm * pAryDataComm定义如下:
typedef struct _DataComm                //数据传送过程
{
    int Delay_Byte;                   //字节间延时
int  Delay_Max;                    //通讯延时最大值
int  DTS;                          //DTS
int RTS;                          //RTS
}DataComm;
请问如何用c#调用它.
[DllImport(@"D:\12DLB528\Debug\DLB.dll")]
        private extern static int Read(??,??,??)怎么写

解决方案 »

  1.   


    private extern static int Read(IntPtr i,DataComm d,SendData s);
    enum DataComm 
    {
     int Delay_Byte; //字节间延时
    int Delay_Max; //通讯延时最大值
    int DTS; //DTS
    int RTS; //RTS
    }//因为你的这个DataComm 里面的全是int 所以也可以写成
    private extern static int Read(IntPtr i,int d,SendData s);//你的这个SendData 是什么类型? struct吗?如果是,再写个~~
      

  2.   


    enum DataComm 
    {
     int Delay_Byte, //字节间延时
    int Delay_Max, //通讯延时最大值
    int DTS, //DTS
    int RTS //RTS
    }//不好意思,上面更正下
      

  3.   

    楼上的大哥真是嚣张,不用把结构体都改成枚举类型吧.struct DataComm 
    {
     int Delay_Byte, //字节间延时
    int Delay_Max, //通讯延时最大值
    int DTS, //DTS
    int RTS //RTS
      

  4.   

    DataComm 是一个结构吧,不是枚举