首页 » 技术分享 » VS2015使用魔锐锁API遇到的问题

VS2015使用魔锐锁API遇到的问题

 

由于需要对下载工具进行加密狗保护,所以使用了魔锐锁。在把魔锐锁操作的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遇到的问题,转载请注明来源!

0