static void dll_test() { double [] ad = new double[32]; Array.Clear(ad, 0, ad.Length); ad[2] = 0.0; Console.WriteLine(ad.ToString()); int alcMode = -1; ATE_LP_GetAlcMode(ref alcMode); Console.WriteLine(alcMode); DLL_LP_SetAlcMode(300); ATE_LP_GetAlcMode(ref alcMode); DLL_LP_showVersion(); Console.WriteLine(alcMode); DLL_LP_Init(); DLL_LP_Init(0); byte[] version = new byte[1024];// new StringBuilder(1024);//指定的Buf大小必须大于可能的最大长度 //int n = LP_GetVersion(ref version[0], 1024); // //string result = Encoding.ASCII.GetString(version).TrimEnd('\0'); string result = null;; Console.WriteLine(result); Console.WriteLine(result); //string result = Encoding.ASCII.GetString(version); byte[] decBytes = Encoding.ASCII.GetBytes("fileName test"); LP_SetPatternFile(decBytes); //int buf_size = 1024; // //byte[] version = new byte[buf_size];// new StringBuilder(1024);//指定的Buf大小必须大于可能的最大长度 // //int ret = DLL_LP_GetVersion(ref version[0], buf_size); //string result = Encoding.ASCII.GetString(version); //bool retb = (0 == ret ? false : true); //DLL_LP_GetSessionID(ref alcMode); unsafe { // IntPtr pv = Marshal.AllocHGlobal(sizeof(MPS_ACK_INFO_ONE_STEP)); //结构体在使用时一定要分配空间(4*sizeof(int)+128) // int size = sizeof(MPS_ACK_INFO_ONE_STEP); // Marshal.WriteInt32(pv, sizeof(MPS_ACK_INFO_ONE_STEP)); // DLL_LP_GetAckInfo(ref pv); // MPS_ACK_INFO_ONE_STEP ack = (MPS_ACK_INFO_ONE_STEP)Marshal.PtrToStructure(pv, typeof(MPS_ACK_INFO_ONE_STEP)); MPS_ACK_INFO_ONE_STEP ack = new MPS_ACK_INFO_ONE_STEP(); ack.AckStr = "changinf"; ack.AckCount = 100; DLL_LP_GetAckInfo(ref ack); Console.WriteLine(ack.AckCount); } DLL_LP_Analyze(); }
[DllImport(CONST_DEFIN.DllTestFunc, EntryPoint = "LP_GetAckInfo", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)] //, CharSet = CharSet.None, CallingConvention = CallingConvention.Cdecl)] private static extern int DLL_LP_GetAckInfo(ref MPS_ACK_INFO_ONE_STEP ack);