VS2015:与Muiload.lib链接时出现LNK2019错误

时间:2015-08-25 19:00:40

标签: c++ mfc visual-studio-2015

在包含muiload.h并与muiload.lib关联并在 Visual Studio 2015 中调用LoadMUILibrary时,我正在尝试下一个错误:

  

Muiload.lib(muiload.obj):错误LNK2019:未解析的外部符号   __vsnwprintf在函数“long __stdcall StringVPrintfWorkerW”中引用(unsigned short *,unsigned int,unsigned int   *,unsigned short const *,char *)“(?StringVPrintfWorkerW @@ YGJPAGIPAIPBGPAD @ Z)

muiload.lib可能有问题吗?

2 个答案:

答案 0 :(得分:13)

答案 1 :(得分:0)

链接到legacy_stdio_definitions.lib的另一种方法是重新定义这些函数签名以匹配其不赞成使用的样式:

int (WINAPIV * __vsnprintf)(char *, size_t, const char*, va_list) = _vsnprintf;
int (WINAPIV * __vsnwprintf)(wchar_t *, size_t, const wchar_t*, va_list) = _vsnwprintf;

这样做的一个好处是,它避免了由于包含旧版库而导致的其他可能的链接器定义问题。

请注意,这应该在编译器单元(.cpp)中定义,而不是在头文件中定义。