问两个奇怪的问题

Snow_Ice11111 2005-11-01 07:44:09
问题一:

#include "stdafx.h"

编译器为什么会在上面这行代码处报告如下warning:
warning C4652: compiler option 'Generate Browser Info' inconsistent with precompiled header; current command-line option will override that defined in the precompiled header

好象是说编译器的设置和当前命令行不一致,该行代码将被忽略(不起作用?);但我把这行删去或注释掉,它以会在程序最后处报告如下错误:
fatal error C1010: unexpected end of file while looking for precompiled header directive
Error executing cl.exe.

为何会这样??


问题二:
SetWindowPos(hwnd, NULL,
GetSystemMetrics(SM_CXFULLSCREEN) - (rc.right - rc.left),
GetSystemMetrics(SM_CYFULLSCREEN) - (rc.bottom - rc.top),
0, 0, SWP_NOSIZE | SWP_NOZORDER);


上面的代码为何会报告如下错误:
error C2065: 'SetWindowPos' : undeclared identifier
Error executing cl.exe.

我在函数前面加上::也没用,有时用SetWindowLong()函数也会出现这样错误。怎么回事呢?
...全文
190 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Snow_Ice11111 2005-11-30
  • 打赏
  • 举报
回复
??????楼上Featured朋友那天有没喝酒偶不知道^_^
不过,偶保证偶没有酒后结贴哦,呵呵......

谢谢Featured朋友!

有了你们,CSDN不寂寞!
有了你们,这个冬天不太冷!!
Featured 2005-11-29
  • 打赏
  • 举报
回复
回这帖那天我是不是喝酒了?
Snow_Ice11111 2005-11-29
  • 打赏
  • 举报
回复
最近一直都没空试这个问题,拖太久了。先结贴,有空等我有了明确答案再把问题的根源和解决方法再发上来,保证对得起帮忙up和关注这个问题的朋友!不过,我觉得Featured(我握着爱情的门票静静排队……)朋友的见解可能更接近答案一些!谢谢大家的参与!!
holyeagle 2005-11-10
  • 打赏
  • 举报
回复
对于第一个问题,上面几位说的差不多,大体上就是在编译器进行编译的时候,为了节省时间,会对一些不太变化的东西进行预编译,然后放到一个pch文件里面,以后的编译中就不会再动它了.但是,如果以后改变了一些编译设置,这时候编译器会发现预编译文件里面的东西是用的不一样的编译设定,而这种修改可能不是很大大变化(如果变化大,编译器会强制重新编译预编译头文件),所以就会有这个警告.解决的办法就是重新编译一下.很多pch的出错都是在预编译头文件这边,或者是没有重新编译,或者是没有包含.预编译头文件是跟在dsp的stdafx.cpp的后面(# ADD CPP /Yc"stdafx.h"), 注意,stdafx.h并不是放在标准的头文件组里面.可以看看dsp里面的设置.

第二个问题,如果一直有,那是编译路径不对;如果现象不稳定,一般是编译器有问题,建议重新装一下,
远志999 2005-11-02
  • 打赏
  • 举报
回复
第一个问题 这是预编译错误,有两个地方要检查.

1.你的CPP文件头部是否有如下包含指令

#include "stdafx.h"

2.在IDE里点Project->Settings打开工程属性

(1)在Setting For 里选要设定的目标.比如是

Debug Version 中的test.cpp

(2)选C++ Tab页

(3)Category 选Precompiled Headers

选use precompiled header files(.pch)

确保里面是stdafx.h



注意1.2.中的选项里的文件联系(stdafx.h)就能体会

怎么解决此类问题了.

第二个问题 Header: Declared in winuser.h.
Import Library: Use user32.lib.
看看头文件和库。
Snow_Ice11111 2005-11-02
  • 打赏
  • 举报
回复
up......
Snow_Ice11111 2005-11-01
  • 打赏
  • 举报
回复
To Featured(我握着爱情的门票静静排队……):

唔,我试试......
Featured 2005-11-01
  • 打赏
  • 举报
回复
SetWindowPos(hwnd, NULL,
GetSystemMetrics(SM_CXFULLSCREEN) - (rc.right - rc.left),
GetSystemMetrics(SM_CYFULLSCREEN) - (rc.bottom - rc.top),
0, 0, SWP_NOSIZE | SWP_NOZORDER);
必须在CWnd的派生类中使用吧
teli_eurydice 2005-11-01
  • 打赏
  • 举报
回复
up
Snow_Ice11111 2005-11-01
  • 打赏
  • 举报
回复
To winks(少爷):
谢谢!
这两个问题是出现在同一个工程中的,即我已经加上了#include "stdafx.h"
winks 2005-11-01
  • 打赏
  • 举报
回复
问题二:用mfc向导产生的某些工程必须在代码文件中加上 #include "stdafx.h"

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧