(OLED_V2)中使用,记录如下。
新建工程添加到已有的解决方案。 VS2015的配置步骤: 1. 2. 3. 注意:CyAPI.lib(CyAPI.obj) : error LNK2019:无法解析的外部符号 _sprintf, 在vs2015工程选项,链接器附加依赖项里面添加legacy_stdio_definitions.lib即可。 出现这个问题的原因是vs2015默认编译时将许多标准库采用内联方式处理,因而没有可以链接的标准库文件,所以要专门添加标准库文件来链接标准库中的函数。
补充: #if 1 VS2017添加CyAPI.lib的时候出现error LNK2019提示,如下
1>CyAPI.lib(CyAPI.obj) : error LNK2019: 无法解析的外部符号 __imp__SetupDiDestroyDeviceInfoList@4,该符号在函数 "public: unsigned char __thiscall CCyUSBDevice:eviceCount(void)" (?DeviceCount@CCyUSBDevice@@QAEEXZ) 中被引用
1>CyAPI.lib(CyAPI.obj) : error LNK2019: 无法解析的外部符号 __imp__SetupDiEnumDeviceInterfaces@20,该符号在函数 "public: unsigned char __thiscall CCyUSBDevice:eviceCount(void)" (?DeviceCount@CCyUSBDevice@@QAEEXZ) 中被引用
1>CyAPI.lib(CyAPI.obj) : error LNK2019: 无法解析的外部符号 __imp__SetupDiGetClassDevsA@16,该符号在函数 "public: unsigned char __thiscall CCyUSBDevice:eviceCount(void)" (?DeviceCount@CCyUSBDevice@@QAEEXZ) 中被引用
1>CyAPI.lib(CyAPI.obj) : error LNK2019: 无法解析的外部符号 __imp__SetupDiGetDeviceInterfaceDetailA@24,该符号在函数 "public: bool __thiscall CCyUSBDevice::CreateHandle(unsigned char)" (?CreateHandle@CCyUSBDevice@@QAE_NE@Z) 中被引用
1>CyAPI.lib(CyAPI.obj) : error LNK2019: 无法解析的外部符号 _sprintf,该符号在函数 "public: void __thiscall CCyUSBDevice::UsbdStatusString(unsigned long,char *)" (?UsbdStatusString@CCyUSBDevice@@QAEXKPAD@Z) 中被引用
解决方法: 给VS2017添加附加依赖库:下面2个,(SETUPAPI.lib是必须加的)。
SetupAPI.lib VS2017比VS2015需要多加个这个库。。。 legacy_stdio_definitions.lib VS2015和VS2017中必须加的 。。 #endif
在主工程添加USB_Dll
|