Visual Studio 2017でシリアル通信ができない

2017年12月6日水曜日

t f B! P L
Visual Studio 2017を使って、C++で簡単なCOMポートアクセスを行うとしたところ、どうしてもCOMポートにアクセスできません。具体的には、CreateFileでハンドルを取得しようとしても、 INVALID_HANDLE_VALUEしか返ってきません。
 HANDLE h = CreateFile((LPCWSTR)"COM4",  // COM4のオープン
  GENERIC_READ | GENERIC_WRITE,
  0, NULL,
  OPEN_EXISTING, 0, NULL);

 if (h == INVALID_HANDLE_VALUE) {
  printf("E012_Failed to open port");
いろいろ調べたところ、原因は文字セットでした。プロジェクトのプロパティの文字セットを"Unicode文字セットを使用する"から"設定なし"に変更し、CreateFileの引数の(LPCWSTR)を(LPCSTR)に変更することで、COMポートをアクセスできるようになりました。

このブログを検索

QooQ