DllImport in C#

strongly refer: http://www.pinvoke.net/default.aspx/kernel32.GetSystemInfo

 

DllImport("kernel32.dll", EntryPoint = "CreateFile")]static extern IntPtr CreateFile(string filename,MarshalAs(UnmanagedType.U4)]FileAccess fileaccess,MarshalAs(UnmanagedType.U4)]FileShare fileshare,int securityattributes,MarshalAs(UnmanagedType.U4)]FileMode creationdisposition,int flags,IntPtr template);

//[DllImport("kernel32.dll", EntryPoint = "CreateFile")]

//private static extern IntPtr CreateFile(string lpFileName, System.Int32 dwDesiredAccess, // System.Int32 dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, // System.Int32 dwCreationDisposition, System.Int32 dwFlagsAndAttributes, // IntPtr hTemplateFile); DllImport("kernel32.dll", EntryPoint = "SetFilePointer")]private static extern uint SetFilePointer(IntPtr hFile, int lDistanceToMove,IntPtr lpDistanceToMoveHigh, uint dwMoveMethod);

 

 

 

 

 

//[DllImport("kernel32.dll", EntryPoint = "SetFilePointer")] //private static extern System.Int32 SetFilePointer( // IntPtr hFile,

 

 

 

 

 

//[DllImport("kernel32.dll", EntryPoint = "WriteFile")] //private static extern bool WriteFile(

 

 

 

 

 

 

 

//public void SetStamp(string strFile, System.Int32 i32Stamp) //{

 

 

 

 

// byte[] buffer = { (byte)(i32Stamp << 16 >> 24), // (byte)(i32Stamp << 24 >> 24), // (byte)(i32Stamp >> 24), // (byte)(i32Stamp << 8 >> 24) }; // uint uiWrittenLen;

 

 

 

 

 

 

 

// System.Threading.NativeOverlapped lpOverlapped = new NativeOverlapped(); // IntPtr filePtr = CreateFile(strFile, FileAccess.ReadWrite, FileShare.ReadWrite, // 0, FileMode.Open, 0, IntPtr.Zero); // SetFilePointer(filePtr, 8, IntPtr.Zero, 0); //why does it not work? // WriteFile(filePtr, buffer, (uint)(buffer.Length), out uiWrittenLen, ref lpOverlapped); // CloseHandle(filePtr); //}

// IntPtr hFile, // LPCVOID lpBuffer, // System.Int32 nNumberOfBytesToWrite, // LPDWORD lpNumberOfBytesWritten, // LPOVERLAPPED lpOverlapped); DllImport("kernel32.dll", EntryPoint = "CloseHandle", SetLastError = true)]return: MarshalAs(UnmanagedType.Bool)]public static extern bool CloseHandle(IntPtr hObject);

// LONG lDistanceToMove, // PLONG lpDistanceToMoveHigh, // System.Int32 dwMoveMethod); DllImport ( "kernel32.dll" , EntryPoint = "WriteFile" )] private static extern bool WriteFile( IntPtr hFile, byte [] lpBuffer, uint nNumberOfBytesToWrite, out uint lpNumberOfBytesWritten, In ] ref System.Threading. NativeOverlapped lpOverlapped);

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值