Я пытаюсь использовать Win32 API для написания собственной небольшой библиотеки для подключения к последовательному порту. К сожалению, все примеры кода, которые я нашел, используют kernel32.dll (который Я могу это сделать), но команда createFile использует префикс win32Com, который, как я предполагаю, является частью некоторого пространства имен, которое мне нужно использовать. К сожалению, я не могу понять это, и, будучи новичком, я не знаю, как узнать, является ли это ссылкой, которую мне нужно включить, или чем-то еще.
Может ли кто-нибудь указать мне пример кода, который объясняет, как это сделать? Или подскажите, где я ошибаюсь? Я включу свой раздел «использования» и DllImport, а также место, где я пытаюсь создать файл ниже.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.IO.Ports;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
Здесь есть еще код, инициализация формы и т.д.
[DllImport("kernel32.dll", SetLastError = true)]
internal static extern IntPtr CreateFile(String lpFileName,
UInt32 dwDesiredAccess, UInt32 dwShareMode,
IntPtr lpSecurityAttributes, UInt32 dwCreationDisposition,
UInt32 dwFlagsAndAttributes, IntPtr hTemplateFile);
Но когда я использую следующее, я получаю сообщение об ошибке: The name 'Win32Com' does not exist in the current context.
hPort = Win32Com.CreateFile(cs.port,
Win32Com.GENERIC_READ | Win32Com.GENERIC_WRITE, 0, IntPtr.Zero,
Win32Com.OPEN_EXISTING, Win32Com.FILE_FLAG_OVERLAPPED,
IntPtr.Zero);
Я уверен, что это простая ошибка, которую я совершаю, но, к сожалению, на данный момент у меня нет набора навыков, чтобы выяснить, где она находится.
Заранее спасибо!