我有这个简单的程序,可以创建密码提示。我安装了Visual Studio 2012和2010。它适用于2010年,但在2012年我收到此错误:unresolved external symbol __report_rangecheckfailure referenced in function main
。此外,我通过将所有内容从main移动到另一个函数来修改代码。这适用于两个版本。
某些库肯定存在一些问题,但是哪一个,我该如何解决呢?感谢。
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
int key, i;
char pwd[64];
printf("Enter passphrase: ");
key=getch();
i=0;
while (key!=13)
{
cout<<"*";
pwd[i++]=key;
key=getch();
}
pwd[i++]='\0';
cout<<strlen(pwd)<<endl;
for (i=0; i<strlen(pwd); i++)
cout<<pwd[i]<<endl;
getch();
}
答案 0 :(得分:7)
如果项目是在VS 2010中启动的,那么VS将使用MS VS 10.0 C库。如果你从2012年开始,它将使用vers。 11.0库。 VS 2012将在编译时调用__report_rangecheckfailure,但它与版本10中的版本不同。您可以在主项目菜单中将项目更新到VS 2012,或禁用缓冲区安全检查。