質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

1103閲覧

GUID_DEVINTERFACE_COMPORTとは何ですか?

notgoodpg

総合スコア37

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2018/03/01 06:18

編集2018/03/01 06:20

前提・実現したいこと

COMポートの一覧を取得するプログラムを作ろうとしています。
丁度よさそうなサンプルが掲載されているブログを見つけて、コピペで実行しようとしたがGUID_DEVINTERFACE_COMPORTが原因でコンパイルが通らない。
GUID_DEVINTERFACE_COMPORTとは何かが分かればコンパイルできるはず。と思っています。
ですのでご存知の方にご教授願いたく質問させていただきます。よろしくお願いいたします。

発生している問題・エラーメッセージ

識別子 "GUID_DEVINTERFACE_COMPORT" が定義されていません

該当のソースコード

C++

1// 色々初期化 2 DWORD i; 3 BYTE Buffer[256]; //領域確保(てきとう) 4 DWORD Length = 0; 5 HWND hwndDlg = this->GetSafeHwnd(); //ダイアログのハンドル取得 6 SP_DEVINFO_DATA DeviceInfoData = {sizeof(SP_DEVINFO_DATA)}; /// 1件デバイス情報 7 HDEVINFO hDevInfo = 0; // 列挙デバイス情報 8 9// COMポートのデバイス情報を取得 10 hDevInfo = SetupDiGetClassDevs( &GUID_DEVINTERFACE_COMPORT, NULL, hwndDlg, ( DIGCF_PRESENT | DIGCF_DEVICEINTERFACE ) ); 11 12 13 // 列挙の終わりまでループ 14 for(i=0; SetupDiEnumDeviceInfo( hDevInfo, i, &DeviceInfoData ); i++) // 1件取得 15 { 16  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_ADDRESS, NULL, Buffer,sizeof(Buffer),&Length ); 17  MessageBox( (const char*)Buffer , 0 , MB_OK ); 18 19  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_BUSNUMBER, NULL, Buffer,sizeof(Buffer),&Length ); 20  MessageBox( (const char*)Buffer , 0 , MB_OK ); 21 22  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_CAPABILITIES, NULL, Buffer,sizeof(Buffer),&Length ); 23  MessageBox( (const char*)Buffer , 0 , MB_OK ); 24 25  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_CHARACTERISTICS, NULL, Buffer,sizeof(Buffer),&Length ); 26  MessageBox( (const char*)Buffer , 0 , MB_OK ); 27 28  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_CLASS, NULL, Buffer,sizeof(Buffer),&Length ); 29  MessageBox( (const char*)Buffer , 0 , MB_OK ); 30 31  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_CLASSGUID, NULL, Buffer,sizeof(Buffer),&Length ); 32  MessageBox( (const char*)Buffer , 0 , MB_OK ); 33 34  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_COMPATIBLEIDS, NULL, Buffer,sizeof(Buffer),&Length ); 35  MessageBox( (const char*)Buffer , 0 , MB_OK ); 36 37  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_CONFIGFLAGS, NULL, Buffer,sizeof(Buffer),&Length ); 38  MessageBox( (const char*)Buffer , 0 , MB_OK ); 39 40  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_DEVICE_POWER_DATA, NULL, Buffer,sizeof(Buffer),&Length ); 41  MessageBox( (const char*)Buffer , 0 , MB_OK ); 42 43  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_DEVICEDESC, NULL, Buffer,sizeof(Buffer),&Length ); 44  MessageBox( (const char*)Buffer , 0 , MB_OK ); 45 46  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_DEVTYPE, NULL, Buffer,sizeof(Buffer),&Length ); 47  MessageBox( (const char*)Buffer , 0 , MB_OK ); 48 49  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_DRIVER, NULL, Buffer,sizeof(Buffer),&Length ); 50  MessageBox( (const char*)Buffer , 0 , MB_OK ); 51 52  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_ENUMERATOR_NAME, NULL, Buffer,sizeof(Buffer),&Length ); 53  MessageBox( (const char*)Buffer , 0 , MB_OK ); 54 55  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_EXCLUSIVE, NULL, Buffer,sizeof(Buffer),&Length ); 56  MessageBox( (const char*)Buffer , 0 , MB_OK ); 57 58  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_FRIENDLYNAME, NULL, Buffer,sizeof(Buffer),&Length ); 59  MessageBox( (const char*)Buffer , 0 , MB_OK ); 60 61  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_HARDWAREID, NULL, Buffer,sizeof(Buffer),&Length ); 62  MessageBox( (const char*)Buffer , 0 , MB_OK ); 63 64  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_INSTALL_STATE, NULL, Buffer,sizeof(Buffer),&Length ); 65  MessageBox( (const char*)Buffer , 0 , MB_OK ); 66 67  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_LEGACYBUSTYPE, NULL, Buffer,sizeof(Buffer),&Length ); 68  MessageBox( (const char*)Buffer , 0 , MB_OK ); 69 70  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_LOCATION_INFORMATION, NULL, Buffer,sizeof(Buffer),&Length ); 71  MessageBox( (const char*)Buffer , 0 , MB_OK ); 72 73  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_LOCATION_PATHS, NULL, Buffer,sizeof(Buffer),&Length ); 74  MessageBox( (const char*)Buffer , 0 , MB_OK ); 75 76  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_LOWERFILTERS, NULL, Buffer,sizeof(Buffer),&Length ); 77  MessageBox( (const char*)Buffer , 0 , MB_OK ); 78 79  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_MFG, NULL, Buffer,sizeof(Buffer),&Length ); 80  MessageBox( (const char*)Buffer , 0 , MB_OK ); 81 82  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_PHYSICAL_DEVICE_OBJECT_NAME, NULL, Buffer,sizeof 83(Buffer),&Length ); 84  MessageBox( (const char*)Buffer , 0 , MB_OK ); 85 86  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_SECURITY, NULL, Buffer,sizeof(Buffer),&Length ); 87  MessageBox( (const char*)Buffer , 0 , MB_OK ); 88 89  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_SECURITY_SDS, NULL, Buffer,sizeof(Buffer),&Length ); 90  MessageBox( (const char*)Buffer , 0 , MB_OK ); 91 92  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_SERVICE, NULL, Buffer,sizeof(Buffer),&Length ); 93  MessageBox( (const char*)Buffer , 0 , MB_OK ); 94 95  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_UI_NUMBER_DESC_FORMAT, NULL, Buffer,sizeof(Buffer),&Length ); 96  MessageBox( (const char*)Buffer , 0 , MB_OK ); 97 98  SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_UPPERFILTERS, NULL, Buffer,sizeof(Buffer),&Length ); 99  MessageBox( (const char*)Buffer , 0 , MB_OK ); 100 101// デバイスインスタンスIDを取得 102  SetupDiGetDeviceInstanceId( hDevInfo, &DeviceInfoData, (PTSTR)Buffer, sizeof(Buffer), &Length ); 103  MessageBox( (const char*)Buffer , 0 , MB_OK ); 104 105// COMポート番号を取得 106  HKEY tmp_key = SetupDiOpenDevRegKey( hDevInfo, &DeviceInfoData, DICS_FLAG_GLOBAL, 0, DIREG_DEV, KEY_QUERY_VALUE ); 107  if( tmp_key ){ 108   DWORD tmp_type = 0; 109   DWORD tmp_size = sizeof( Buffer ); 110   RegQueryValueEx( tmp_key, _T("PortName"), NULL, &tmp_type , reinterpret_cast(Buffer), &tmp_size ); 111   MessageBox( (const char*)Buffer , 0 , MB_OK ); 112  } 113 }

参考にしているブログ記事の完全なコピペです。

試したこと

ググっても英語でよく分からなかったりしてよく分かりません。

補足情報(FW/ツールのバージョンなど)

  • VC++
  • VisualStudio2015SP1
  • Windows7/64 SP1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

その名前でぐぐってみると、いろんな解説のサイトが引っかかります

その中で、

>コンパイルにはWDK7が必要です。
http://yamatyuu.net/computer/program/comlist/index.html

という記述が見えます
ここらへんやってみればどうでしょうか。

投稿2018/03/01 06:33

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

notgoodpg

2018/03/01 06:53

ご回答ありがとうございます。 Windows Driver Kitが新たに必要になるのですね・・・導入を検討してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問