Использование Windows API в g ++ для получения информации об устройстве COM - PullRequest
0 голосов
/ 22 апреля 2019

Я пишу программу на C ++, скомпилированную на g ++, которая взаимодействует с USB-устройством.USB-устройство управляется Arduino Mega.Как вы, возможно, знаете, существует множество ароматов клонов Arduino.Например, я экспериментирую с Elegoo, и фактическая плата, которую я буду использовать для конечного продукта, - это оригинальная Arduino Mega.У одного COM-порт 4, у другого COM-порт 5. Плюс, кто сказал, что эти COM-порты будут одинаковыми на другом компьютере?Итак, в моей программе я хочу определить, к какому COM подключена плата.Однако я получаю сообщение об ошибке "неопределенная ссылка на GUID_DEVCLASS_PORTS". Я использую следующую строку для компиляции:

g++ -o testPorts.exe testPorts.cpp -lsetupapi -mwindows

Мой код начинается следующим образом:


#include (Left Carat)windows.h>
#include (Left Carat)initguid.h>
#include (Left Carat)devguid.h>
#include (Left Carat)setupapi.h>
#include (Left Carat)stdio.h>


int main() {
    SP_DEVINFO_DATA devInfoData = {};
    devInfoData.cbSize = sizeof(devInfoData);

    // Get port info tree:
    HDEVINFO hDeviceInfo = SetupDiGetClassDevs( &GUID_DEVCLASS_PORTS,
                                                0,
                                                NULL,
                                                DIGCF_PRESENT
                                                );

У меня естьобязательные включения перечислены в справочной странице Microsoft MSDN. Я использовал команду -l для добавления требуемой библиотеки setupapi. Я использовал команду -m, чтобы сделать ее сборкой Windows GUI. Я не могу понять, почему я получаю ошибку. Может кто-нибудь предложить какой-либопредложения? Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...