110,534
社区成员
发帖
与我相关
我的任务
分享
private string filepath;
private int iHandle;
public Driver(string path)
{
this.filepath = path;
}
public bool Close()
{
return CloseHandle(this.iHandle);
}
[DllImport("kernel32.dll")]
private static extern bool CloseHandle(int hObject);
[DllImport("kernel32.dll")]
private static extern int CreateFile(string lpFilename, uint dwDesiredAccess, int dwShareMode, int lpSecurityAttributes, int dwCreationDisposition, int dwFlagsAndAttributes, int hTemplateFile);
public bool Open()
{
this.iHandle = CreateFile(this.filepath, 3, 0, 0, 3, 0, 0);
return (this.iHandle != -1);
}
public bool Write(string Mystring)
{
int num;
OVERLAPPED overlapped;
if (this.iHandle == -1)
{
throw new Exception("端口未打开!");
}
byte[] bytes = Encoding.Default.GetBytes(Mystring);
return WriteFile(this.iHandle, bytes, bytes.Length, out num, out overlapped);
}
public bool Write(byte[] barray)
{
int num;
OVERLAPPED overlapped;
if (this.iHandle == -1)
{
throw new Exception("端口未打开!");
}
return WriteFile(this.iHandle, barray, barray.Length, out num, out overlapped);
}
[DllImport("kernel32.dll")]
private static extern bool WriteFile(int hFile, byte[] lBuffer, int nNumberOfBytesToWrite, out int lpNumbersOfBytesWritten, out OVERLAPPED lpOverlapped);
[StructLayout(LayoutKind.Sequential)]
private struct OVERLAPPED
{
private int Internal;
private int InternalHigh;
private int Offset;
private int OffSetHigh;
private int hEvent;
}
}
构造参数就是直接在usb读取,其他不用说了哇