c++运行程序时出现“This application has requested the Runtime...in an unusual way”

【Problem】

当我使用c free编写C++时,第一个发现对文件进行操作时,ios::noCreate已经不再使用了,第二个就是在执行下面的程序时出
现提示:This application has requested the Runtime to terminate it in an unusual way. Please contact the application’s support team for more information.

代码如下:

//随机访问二进制数据文件

#include
using namespace std;
struct student{   //定义Student结构体
   int num;
   char name[5];
   float score; 
};

int main(){

    struct student stud[5]={  //初始化五个学生的基本信息
        {1001,"Li",85},
        {1002,"Fun",97.5},
        {1003,"Wang",54},
        {1006,"Tan",76.5},
        {1010,"Ling",96}
    };

    fstream iofile("stud.dat",ios::in|ios::out|ios::binary);
    //用fstream类定义输入输出二进制文件流对象iofile
    if(!iofile){
        cerr<<"open error!"<abort();
    } 
    for(int i=0;i<5;i++){    //向磁盘文件输出5个学生的数据 
        iofile.write((char *)&stud[i],sizeof(stud[i])); 
    }
    struct student stud1[5];
    for(int i=0;i<5;i=i+1){
        iofile.seekg(i*sizeof(stud[i]),ios::beg);//定位于第0,2,4学生数据的开头
        iofile.read((char *)&stud1[i/2],sizeof(stud1[0]));
        //先后读出三个学生的数据,存放到stud1[0],stud1[1],stud1[2]中
        cout<2].num<<" "<2].name<<" "<2].score<cout<2].num=1012;
    strcpy(stud[2].name,"Wu");
    stud[2].score=60;
    iofile.seekp(2*sizeof(stud[0]),ios::beg);        //定位于第三个学生数据的开头 
    iofile.write((char *)&stud[2],sizeof(stud[2]));  //更新第三个学生的数据 
    iofile.seekg(0,ios::beg);

    for(int i=0;i<5;i++){
        iofile.read((char *)&stud[i],sizeof(stud[i]));
        cout<2].num<<" "<2].name<<" "<2].score<return 0;
}

【求助】

我在网上百度之后发现网上提供的办法如下:

1、进入命令行cmd
2、切换目录至windows下的system32(即 cd c:\Windows\System32)
3、执行Regsvr32 Msxml3.dll

我按照上面的流程走了一遍,发现there is no use.Sading~

之后我发现了另一种办法:
下载一个软件Dependency Walker 2.2,解压之后运行depends.exe,然后在里面打开你所要检查的.exe文件(我把我上面代码生成的可执行文件导入进去),然后你就会看到红色字体的消息,这里面就提示了你错误的消息。

其实就是缺少了很多.dll文件,这些文件都可以在脚本之家找到,将其放在System32文件夹里即可。


实在不懂为什么会少这些库文件,求有心人告知,万分感谢!

你可能感兴趣的:(C++,dll文件,c++)