编辑: 我通过将运行时库设置为从项目默认值继承来解决问题。 我使用的是多线程DLL(/ MT),因为我使用的是SDL-2教程。
有人可以解释为什么这会破坏c ++的字符串吗?
每当我尝试使用字符串时,我的编译器都会给出以下错误:
LNK2019未解析的外部符号__imp___invalid_parameter在函数“void * __cdecl std :: _ Allocate(unsigned int,unsigned int,bool)”中引用“
LNK2019未解析的外部符号__imp___CrtDbgReportW在函数“void * __cdecl std :: _ Allocate(unsigned int,unsigned int,bool)”中引用“
我已将我的所有代码剥离到最低限度,并且如下所示:
#include <string>
int main(int argc, char *argv[]) {
std::string resPath;
return 0;
}
我不知道在哪里看。有没有人有想法?
我正在使用MSVS社区2015。
答案 0 :(得分:1)
我和VS2017有同样的问题。事实证明我的运行时库设置有误。我无意中将其设置为多线程DLL(/ MD)以进行调试配置。它应该是多线程调试DLL(/ MDd)或多线程调试(/ MTd)。