由于需要对下载工具进行加密狗保护,所以使用了魔锐锁。在把魔锐锁操作的API集成到现有工具的时候,遇到了一些问题,现在把解决方法记录一下。
1.引入api静态库 #pragma comment(lib, "lib_moway_api.lib") 之后编译,报出以下错误。
1>lib_moway_api.lib(lib_h5_api.o) : error LNK2019: 无法解析的外部符号 sprintf,该符号在函数 % 中被引用
1>lib_moway_api.lib(lib_h5_api.o) : error LNK2001: 无法解析的外部符号 sprintf
1>lib_moway_api.lib(lib_h5_api.o) : error LNK2001: 无法解析的外部符号 sprintf
1>lib_moway_api.lib(mw_sync_mutex.c.obj) : error LNK2001: 无法解析的外部符号 sprintf
1>lib_moway_api.lib(lib_h5_api.o) : error LNK2019: 无法解析的外部符号 sscanf,该符号在函数 % 中被引用
1>lib_moway_api.lib(lib_h5_api.o) : error LNK2019: 无法解析的外部符号 vsprintf,该符号在函数 % 中被引用
解决办法:
#pragma comment(lib, "legacy_stdio_definitions.lib")。包含stdio标准库。
2.接上一条,还有以下错误
lib_moway_api.lib(lib_h5_api.o) : error LNK2019: 无法解析的外部符号 __iob_func,该符号在函数 % 中被引用
解决办法:
#if _MSC_VER>=1900
#include "stdio.h"
_ACRTIMP_ALT FILE* __cdecl __acrt_iob_func(unsigned);
#ifdef __cplusplus
extern "C"
#endif
FILE* __cdecl __iob_func(unsigned i) {
return __acrt_iob_func(i);
}
#endif
3.继续,报出新错误
1>lib_moway_api.lib : warning LNK4272: 库计算机类型“x64”与目标计算机类型“X86”冲突
解决办法:
这个是看你想要生成X86平台的程序还是生产X64平台的程序,对应去修改工程的配置或者使用魔锐对应的静态库。
转载自原文链接, 如需删除请联系管理员。
原文链接:VS2015使用魔锐锁API遇到的问题,转载请注明来源!