乐哈哈yoyo 发表于 2019-3-11 16:15:17

CYPRESS USB_DLL的添加使用步骤

(OLED_V2)中使用,记录如下。
新建工程添加到已有的解决方案。VS2015的配置步骤:1.2.3.注意:CyAPI.lib(CyAPI.obj) : error LNK2019:无法解析的外部符号 _sprintf,在vs2015工程选项,链接器附加依赖项里面添加legacy_stdio_definitions.lib即可。出现这个问题的原因是vs2015默认编译时将许多标准库采用内联方式处理,因而没有可以链接的标准库文件,所以要专门添加标准库文件来链接标准库中的函数。
补充:#if 1VS2017添加CyAPI.lib的时候出现error LNK2019提示,如下
1>CyAPI.lib(CyAPI.obj) : error LNK2019: 无法解析的外部符号 __imp__SetupDiDestroyDeviceInfoList@4,该符号在函数 "public: unsigned char __thiscall CCyUSBDevice::DeviceCount(void)" (?DeviceCount@CCyUSBDevice@@QAEEXZ) 中被引用
1>CyAPI.lib(CyAPI.obj) : error LNK2019: 无法解析的外部符号 __imp__SetupDiEnumDeviceInterfaces@20,该符号在函数 "public: unsigned char __thiscall CCyUSBDevice::DeviceCount(void)" (?DeviceCount@CCyUSBDevice@@QAEEXZ) 中被引用
1>CyAPI.lib(CyAPI.obj) : error LNK2019: 无法解析的外部符号 __imp__SetupDiGetClassDevsA@16,该符号在函数 "public: unsigned char __thiscall CCyUSBDevice::DeviceCount(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
页: [1]
查看完整版本: CYPRESS USB_DLL的添加使用步骤