public static void Write(string Data) { //用ref 的方式发送数据+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // [DllImport("nican.dll")] //static extern int ncWrite(uint ObjHandle, int DataSize, ref NCTYPE_CAN_FRAME DataPtr); //NCTYPE_CAN_FRAME sendobj = new NCTYPE_CAN_FRAME() //{ // ArbitrationId = 0x512, // IsRemote = 0, // DataLength = 8, //}; //string strdata = Data; //int len = (strdata.Length + 1) / 3; //List<byte> bytelist = new List<byte>(); //for (int t = 0; t < len; t++) //{ // bytelist.Add(System.Convert.ToByte("0x" + strdata.Substring(t * 3, 2), 16)); // sendobj.Data[t] = bytelist[t]; //} //int size = sizeof(NCTYPE_CAN_FRAME); //int ii = ncWrite(pObjHandlePtr, size, ref sendobj); //指针的方式发送数据++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ NCTYPE_CAN_FRAME _STRUCT = new NCTYPE_CAN_FRAME(); NCTYPE_CAN_FRAME *p = &_STRUCT; p->ArbitrationId = 0x72b; p->IsRemote = 0; p->DataLength = 8; string strdata = Data; int len = (strdata.Length + 1) / 3; List <byte> bytelist = new List <byte>(); for (int t = 0; t < len; t++) { bytelist.Add(Convert.ToByte("0x" + strdata.Substring(t * 3, 2), 16)); p->Data[t] = bytelist[t]; } int size1 = sizeof(NCTYPE_CAN_FRAME); ncWrite(pObjHandlePtr, size1, p); }
static extern int ncWrite(uint ObjHandle, int DataSize, NCTYPE_CAN_FRAME *DataPtr);