51Testing软件测试论坛

标题: CYPRESS USB_DLL的添加使用步骤 [打印本页]

作者: 乐哈哈yoyo    时间: 2019-3-11 16:15
标题: CYPRESS USB_DLL的添加使用步骤

(OLED_V2)中使用,记录如下。

新建工程添加到已有的解决方案。

[attach]122803[/attach]

VS2015的配置步骤:

1.

[attach]122804[/attach]

2.

[attach]122805[/attach]

3.

[attach]122806[/attach]

注意: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

[attach]122807[/attach]







欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2