Win32 API を使用して、シリアル ポートに接続するための独自の小さなライブラリを作成しようとしています。残念ながら、私が見つけたすべてのサンプル コードは kernel32.dll を使用していますが (これは可能です)、createFile コマンドは接頭辞 win32Com を使用しています。これは、使用する必要のある名前空間の一部であると想定しています。残念ながら、私はそれを理解することができず、初心者であるため、これが含める必要がある参照であるか、それ以外のものであるかを確認する方法がわかりません。
これを行う方法を説明するサンプルコードを教えてもらえますか? または、どこが間違っているのか教えてください。「usings」セクションと 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);
これは私が犯している単純な間違いだと確信していますが、残念ながら、現時点ではそれがどこにあるかを見つけるスキルセットがありません.
前もって感謝します!