首页 > 其他分享 >使用PInvoke.net

使用PInvoke.net

时间:2023-01-19 00:55:52浏览次数:57  
标签:MessageBox Show PInvoke errCode fileName 使用 net

C#和C++的交互如果自己写代码,一方面繁琐,另一方面容易出错,再者就是代码不太规范。
最近看了一下PInvoke.net的东西,可以直接使用官方写好的。
下面是使用Pinvoke.net打开设备的一个例子。

        private void openDeviceButton_Click(object sender, RoutedEventArgs e)
        {

            var fileName = textBox.Text;
            MessageBox.Show(fileName);

            unsafe
            {
                fixed (char* p = fileName)
                {
                    // do some work
                    DeviceHandle = Kernel32.CreateFile(p, ACCESS_MASK.GenericRight.GENERIC_ALL, 0, (SECURITY_ATTRIBUTES*)0, CreationDisposition.OPEN_EXISTING, CreateFileFlags.FILE_ATTRIBUTE_SYSTEM, SafeObjectHandle.Null);
                }
            }

            if(DeviceHandle.IsInvalid)
            {
                var errCode = Marshal.GetLastWin32Error();
                MessageBox.Show($"not valid value, errCode = {errCode}");
                return;
            }

            MessageBox.Show("valid value");

        }

标签:MessageBox,Show,PInvoke,errCode,fileName,使用,net
From: https://www.cnblogs.com/dewxin/p/17060958.html

相关文章