日期:2014-05-18 浏览次数:21124 次
[DllImport("termb.dll")] private static extern int CVR_InitComm(Int32 Port); 或 [DllImport("termb.dll", EntryPoint = "CVR_InitComm"))] private static extern int CVR_InitComm(Int32 Port);
------解决方案--------------------
估计是CVR_InitComm内部抛出了异常,用下面的代码确认一下...
[DllImport("termb.dll")] private static extern int CVR_InitComm(int Port); public static bool InitComm() { bool result = false; try { if ((CVR_InitComm(1001) == 1) || (CVR_InitComm(1002) == 1) || (CVR_InitComm(1003) == 1) || (CVR_InitComm(1004) == 1)) { result = true; } } catch (SEHException ex) { Console.WriteLine("Unknow error occurred in the call to CVR_InitComm(...)"); } return result; }
------解决方案--------------------
顶一下 接分
------解决方案--------------------
曾经遇到过,我的问题是传入的参数类型不一直造成的
------解决方案--------------------
楼上的
[DllImport("termb.dll")] private static extern int CVR_InitComm(int Port);
------解决方案--------------------
一般都是参数不对应
------解决方案--------------------
你的错误提示 是参数不正确造成的。.你看下说明确定这个方法 只是 int 一个参数?
------解决方案--------------------
//依vb6的声明,c#对应的应该是这样 [DllImport("termb.dll")] private static extern Int16 CVR_InitComm(Int32 Port);