请问高手这类错误怎么改呀

d:尀my documents尀visual studio 2008尀projects尀winmain尀winmain尀winmain.cpp(6) : warning C4627: “#include <stdio.h>”: 在查找预编译头使用时跳过1> 将指令添加到“stdafx.h”或重新生成预编译头1>d:尀my documents尀visual studio 2008尀projects尀winmain尀winmain尀winmain.cpp(104) : fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h"”?1>生成日志保存在“file://d:尀My Documents尀Visual Studio 2008尀Projects尀WinMain尀WinMain尀Debug尀BuildLog.htm”1>WinMain - 1 个错误,1 个警告代码如下:// WinMain.cpp : 定义应用程序的入口点。////#include "stdafx.h"#include <windows.h>#include <stdio.h>LRESULT CALLBACK WinSunProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { //HWND hwnd; //修改的地方 WNDCLASS wndcls; MSG msg; wndcls.cbClsExtra =0; wndcls.cbWndExtra =0; wndcls.hbrBackground =(HBRUSH)GetStockObject(BLACK_BRUSH); wndcls.hCursor =LoadCursor(NULL,IDC_CROSS); wndcls.hIcon =LoadIcon(NULL,IDI_ERROR); wndcls.hInstance =hInstance; wndcls.lpfnWndProc =WinSunProc; wndcls.lpszClassName ="lich daodao"; wndcls.lpszMenuName =NULL; wndcls.style =CS_HREDRAW | CS_VREDRAW; RegisterClass(&wndcls); HWND hwnd;//修改前有的 hwnd=CreateWindow("lich daodao","http://www.lich.org",WS_OVERLAPPEDWINDOW, 0,0,600,400,NULL,NULL,hInstance,NULL); ShowWindow(hwnd,SW_SHOWNORMAL); UpdateWindow(hwnd); MSG msg;//修改前有的 while (GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam ; } LRESULT CALLBACK WinSunProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) { /*HDC hDC; PAINTSTRUCT ps; char szChar[20];*/ switch(uMsg) { case WM_CHAR: char szChar[20]; sprintf(szChar,"char code is %d",wParam); MessageBox(hwnd,szChar,"char",0); break; case WM_LBUTTONDOWN: MessageBox(hwnd,"mouse clicked","message",0); HDC hdc; hdc=GetDC(hwnd); TextOut(hdc,0,50,"立亚之冢",strlen("立亚之冢")); ReleaseDC(hwnd,hdc);// 修改后第2个dc改为DC break; case WM_PAINT: HDC hDC; PAINTSTRUCT ps; hDC=BeginPaint(hwnd,&ps); TextOut(hDC,0,0,"http://www.lich.com",strlen("http://www.lich.com")); EndPaint(hwnd,&ps); break; case WM_CLOSE: if(IDYES==MessageBox(hwnd,"是否真的结束? ","message",MB_YESNO)) { DestroyWindow(hwnd); } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,uMsg,wParam,lParam); } return 0; }我加上了#include "stdafx.h"产生了13个错误,还是不行呀
2026年09月25日 05:30
有2个网友回答
网友(1):

开头:
//#include "stdafx.h"
去掉//
改成:#include "stdafx.h"

编译器通过一个头文件stdafx.h来使用预编译头文件。stdafx.h这个头文件名是可以在project的编译设置里指定的。编译器认为,所有在指令#include "stdafx.h"前的代码都是预编译的,它跳过#include "stdafx. h"指令,使用projectname.pch编译这条指令之后的所有代码。

因此,所有的MFC实现文件第一条语句都是:#include "stdafx.h"。

加了以后的错误提示呢?

建议新建一个工程,把需要的代码全部复制过去.
或者尝试把工程所在文件夹下的debug文件夹删除,重新编译试试.

网友(2):

一、介绍

这个世界变得快,随着CPU的极速逛飙,硬盘技术也是越来越先进了,以前我们还在为单碟10GB的硬盘惊叹不以时,现在单碟15GB的硬盘已成了市场的主流,而且单碟20GB的硬盘也已新鲜出炉了。硬盘的性能及容量是在逛涨,而其价格呢?却相反,在一降再降,这种情况下,使用老5400RPM硬盘的朋友不添一块新硬盘确实是说不过去得事。所以现在使用双硬盘的用户已不是什么新鲜事,许多朋友都用上了双硬盘。在此文中,笔者就向大家介绍一下双硬盘存储系统,向大家说明双硬盘系统安装、使用及优化方法,旨在向大家介绍双硬盘的正确使用及使其运行于是佳状态。

使用双硬盘的前期工作当然就是安装了,不过在安装双硬盘前还需要进行一些准备工作,虽说这些工作并不是很重要,但是必须得,所以不应忽略。准备工作包括检查你的机箱是否还有足够的空间可用来安置第二块硬盘、主板上是否还有第二个IDE接口、机箱的电源功率是否能充分满足加了第二块硬盘后整台电脑系统的正常运行等。如果这些条件都满足了,那就可以安装第二块硬盘了,安装硬盘的方法非常简单,我想销微有些DIY经验的用户都可以做成,笔者这里就不熬述了。

二、安装

在安装第二块硬盘时需要注意得一个问题也是最经常碰到的问题就是跳线问题,即正确设置主从盘。设置主从盘的目的是为了告诉系统那块是启动盘,设置为主盘得是作为系统的启动盘。不过如果你是将第二块硬盘直接连接到主板的IDE2端口,而不是跟第一块硬盘接在同一个IDE端口时,就不需要进行主从设置了,系统会自动从挂在IDE1上的硬盘启动,而挂在IDE2上的硬盘即自动被置为从盘。至于设置主从盘的方法也比较简单,一般来说在硬盘的背面上都有将硬盘设置为主、从盘的方法,默认的设置是将硬盘作为主盘(即Master盘),而作为从盘的那块硬盘需要设置为Slave(即从盘),可以参照硬盘背面的跳线图进行跳线。对于不同的硬盘其设置主从方法是不一样得,所以这里也不可能介绍一个普遍适用的方法。

下面就介绍两种设置主、从盘的方法

1.由硬盘跳线器设置

所有的IDE设备包括硬盘都使用一组跳线来确定安装后的主、从状态。硬盘跳线器大多设置在电源联接座和数据线联接插座之间的地方(也有设在电路板上的),通常由3组(6或7)针或4组(8或9)针再加一个或两个跳线帽组成。另外在硬盘正面或反面一定还印有主盘(Master)、从盘(Slave)以及由电缆选择(Cableselect)的跳线方法。

各类硬盘的跳线方法和标记说明大同小异,比如昆腾硬盘的跳线器通常有9针4组,其中一根叫"Key",用于定位以便用户正确识别跳线位置。

2.由硬盘跳线器和40芯特制硬盘线配合确定

这种主、从盘的设置是先将硬盘跳线设置在"电缆选择有效"后,然后再根据需要将主、从盘联接在对应的硬盘线插头上。硬盘主、盘状态的设置取决于硬盘与硬盘线的联接插头。通常联接硬盘线中段插头的盘是主盘,联接在硬盘线尽头插头上的盘就是从盘。采用这种方法设置主、从盘时,必须将联接在同一条硬盘线的所有IDE接口设备(包括光驱等)跳线器设置在"电缆选择"位置。

能决定硬盘主、从盘状态40芯硬盘线是特制的。制作方法是将普通40芯硬盘线的第28根线(从第1根红线或其它标记开始数)在两个硬盘插头之间的位置上切断后做成的,切线时注意不能弄断其它线。使用特制硬盘线确定主、从盘状态的优点是使用方便。当需要交换硬盘主、从状态时只要将联接的硬盘线插头位置对调一下即可,不需要拆下硬盘来重新跳线。

在选择到底哪块硬盘作为主盘,哪块硬盘作为从盘时,下面给出一个原则:性能好的硬盘作为主盘,而性能稍微次些的硬盘作为从盘。例如你有一款5400RPM的硬盘,一款7200RPM的硬盘,那当然是选择7200RPM的硬盘作为主盘了。如果不想破坏旧硬盘上的数据,而又想将老硬盘作为从盘,那最好的方法就是备份数据,然后再重装,如果没有备份媒介,那你可以使用GHOST软件将两块硬盘对COPY一下,然后将旧老的硬盘分区格式化后作为从盘就可以了!不过使用GHOST软件应注意,最好两款硬盘是等容量得,如果不等,至少要求目标盘的容量比源盘大。

三、问题

正确安装完了双硬盘后,须进入CMOS中正确设置两块硬盘的参数。当所有这些工作都完成时,你的双硬盘存储系统差不多就完成了。为了方便后来的叙述,我们将双硬盘用户分成两类,第一类用户是装完了双硬盘后,从零开始重装系统,对于此类用户就不要有后面发生问题了,用户只须运行FDISK分区硬盘,将格式化装系统就OK了;除了上面得那类用户,还有些用户为了保存原有硬盘上的数据,不是从零开始重装系统,而是在老硬盘上的基础上升级成双硬盘系统,或者只是将第二块硬盘作为数据备份等用,对于这类用户,在装完了双硬盘后最常发生的问题就是"盘符错乱",即在安装了第二块硬盘后,第一块硬盘中D盘符发生错乱,使得原来是D盘下的软件没法使用。如你原来的第一块硬盘分二个区C、D两个区在IDE1,而新买的第二硬盘分为C、D、E三个区在IDE2。在安装了双硬盘并且在CMOS中正确设置了两块硬盘参数后,查看"我的电脑",会发现原来在老硬盘D区的所有内容现在全都跑到E区去了,而D区变成了第二块硬盘的第一个区,各个分区的具体分布如下:C区(老硬盘)、D区(新硬盘)、E区(老硬盘)、F区(新硬盘)、G区(新硬盘)。这样盘符的变更就使得原来安装在老硬盘D区上所有软件都没法使用了。

如何解决这个头疼得问题呢?总不能再将所有硬盘重分区及格式化一编,然后再重零开始安装吧!在解决这个"盘符错乱"问题之前,让我们先来分析一下它产生的原因,在安装双硬盘后,整个存储系统盘符的排布是安装按:所有Primary(主)分区->所有Extended(扩展)分区分布得,由于第一块硬盘中已有了Primary(主)分区及Extended(扩展)分区,而我们在对第二块硬盘进行分区时又将其分成了Primary(主)分区跟Extended(扩展)分区,依据上面所说得存储系统盘符的排布规律即:所有Primary(主)分区->所有Extended(扩展)分区,所以就使得第二块硬盘的主分区排在了第一块的扩展分区前面,这就发生了上面所说得老硬盘D区变成了E区的问题。

前提:为了保护老硬盘的数据因意外而被破坏,我们对第二块硬盘进行分区等操作时将第一块硬盘摘下。

分析了问题产生的原因,笔者结合自己的经验,总结出一种比较可行的解决此"盘符错乱"的方法,即对"第二块硬盘不分主分区"。既然存储系统的盘符排布是按照所有主分区再到所有扩展分区,那如果第二块硬盘没有主分区就应该不会有"盘符错乱"这问题了。方法想出来了,让我们动手试试此方法的可行性。运行FDISK,先删除第二块硬盘上的所有分区,然后再创建Extended(扩展)分区,结果"没有Primary(主)分区,不允许创建Extended(扩展)分区"。于是就将两块硬盘都挂上,FDISK就会出现第五个选择菜单——选择物理硬盘的选项,选择五,然后再选择第二块硬盘(不要选择错哟,要不第一块硬盘中的数据就不保了),然后开始创建Extended 分区,这次因为有第一块硬盘的Primary(主)分区在,所以顺利地完成了Extended(扩展)分区的创建工作,接下来的结果就不用多说了,当然是老硬盘的D区还是现在的D区,所有在D区的软件都可正常使用了。

四、注意事项

1、在新增或升级硬盘时,尽量优先选择品牌相同的硬盘。因为不同品牌硬盘在同一条硬盘线上使用可能会出现兼容问题。如果电脑启动时检测不到或只检测出一块硬盘的情况时,在确认两块硬盘跳线设置都没有错误前提下可先断开原使用的硬盘再重新开机,如果这时电脑能检测出新加硬盘,那么就是两块硬盘兼容有问题。解决方法是将新硬盘放在第二硬盘线上使用。如果必须使用同一硬盘线,那么就将两块硬盘的主、从关系对换一下。

另外如果新增加的硬盘与光驱等设备一起接在第二硬盘线上时,要注意光驱等设备的主、从盘设置不与新加硬盘相冲突,否则也会出现主板检测不到新增硬盘或者找不到原光驱问题。

2、要注意盘符交错的问题。在多分区的情况下,硬盘分区的排列顺序有些古怪:解决此问题的方法如上面所介绍得。

3、安装双硬盘后要注意散热,两个硬盘间空隙不能太小,且尽量不要超频。

至此,你已可以成功安装并且可以正常使用双硬盘了。使用双硬盘时就跟以前使用单硬盘系统一样,并没有什么分别,最重要的区别可能就是盘符太多了。上面介绍了一些双硬盘安装的经验,希望给广大想安装双硬盘的有点帮助。
参考资料: