什么是SetupAPI,SetupAPI1和SetupAPI2?它们之间有什么区别?

时间:2015-11-23 04:02:53

标签: c++ windows winapi mfc

最近,我需要通过C ++在MFC中实现一个小功能,用于获取可用串口的列表。然后我看到this。我需要知道什么是SetupAPI1和SetupAPI2?当我想用这种方式实现我的功能时,我在哪里可以获得for (NSDictionary * dict in feeds) { for (NSNumber * number in deepsightSig) { long idFeed = [dict[@"SignatureNumber"] longValue]; /// if your id is too large, using NSString instead. long idSig = [number longValue]; /// like NSString = [number stringValue]; if (idFeed == idSig) { /// if using NSString, it should be: "if ([idFeed isEqualToString:idSig])" badIPCount++; } else { goodIPCount++; } } } ?在搜索互联网期间,我发现有一个SetupAPI,但似乎是另一个。现在,我对这些SetupAPI,SetupAPI1和SetupAPI2感到困惑。有什么区别?它们来自哪里?而且,如果我想使用它们,我怎么能得到它们呢?

1 个答案:

答案 0 :(得分:2)

没有像SetupAPI1和SetupAPI2这样的想法。有一个名为SetupAPI的库。

您链接到的答案指的是名为EnumSerialPort的库。从该页面:

  

在内部,代码提供了9种枚举串行端口的方式(是的,你读的是正确的:9):使用CreateFile,QueryDosDevice,GetDefaultCommConfig,使用Setup API的两种方式,EnumPorts,WMI,Com Database&枚举注册表项HKEY_LOCAL_MACHINE \ HARDWARE \ DEVICEMAP \ SERIALCOMM下的值。

     

...

     

全部由以下预处理值来控制该代码的构成的:CENUMERATESERIAL_USE_STL,_AFX,NO_ENUMSERIAL_USING_CREATEFILE,NO_ENUMSERIAL_USING_QUERYDOSDEVICE,NO_ENUMSERIAL_USING_GETDEFAULTCOMMCONFIG,NO_ENUMSERIAL_USING_SETUPAPI1,NO_ENUMSERIAL_USING_SETUPAPI2,NO_ENUMSERIAL_USING_ENUMPORTS,NO_ENUMSERIAL_USING_WMI,NO_ENUMSERIAL_USING_COMDB&安培; NO_ENUMSERIAL_USING_REGISTRY。

这个库提供了两种依赖于SetupAPI的不同方法,只需将它们编号为1和2。您可以通过以下链接查看这些详细信息。