C#呼叫Win32API代碼如下:
1、連接設備
PCIeHandle = HardwareOperation.CreateFile(
devicePathName, //設備路徑
HardwareOperation.GENERIC_READ| HardwareOperation.GENERIC_WRITE, //訪問方式
0, //共享模式
0, // 指向完全屬性結構
HardwareOperation.OPEN_EXISTING, //檔案不存在時回傳失敗
0, //(以異步模式打開)不
0);
2、寫方法
public bool Write(byte[] m_wr_data, int count,ref int writeCount)
{
try
{
uint written = 0;
bool res= HardwareOperation.WriteFile(PCIeHandle, m_wr_data, (uint)m_wr_data.Length, ref written, IntPtr.Zero);
Console.WriteLine("實際寫入的個數為:"+ written);
writeCount = (Int32)written;
if (!res|| writeCount!= m_wr_data.Length)
{
Console.WriteLine("[Write] GetLastError:" + Marshal.GetLastWin32Error());
}
return res;
}
catch (Exception ex)
{
Console.WriteLine("[Write] ex"+ex.Message);
return false;
}
}
連接設備回傳正確,呼叫寫方法回傳false,并且GetLastWin32Error結果回傳87,不知道是不是哪個引數錯誤了,求指教啊啊啊!!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/14608.html
標籤:C#
上一篇:asp.net 圖片控制元件動態顯示圖片 Image的ImageUrl='<%# Eval("pro_image") %>’
下一篇:MYSQL資料庫的欄位大小寫敏感網上說是創建欄位的時候選中Binary,但是我一選中Binary然后應用,系統就報錯
