vc++ bug???

shadowac 2001-07-03 01:33:49

在用 MFC 生成框架后,再生成一个新类,如果你在文档类用到这个新类,将这个新类的头文件放在 XXDOC.CPP 的
#inlcude "stdafx.h" 语句之前,VC++ 将报错!!!放在其后则没问题。
请问这算不算是编译器的 BUG???


偶在做 Windows 程序时,遇到这样一个问题:

其中一段代吗为:
....
LRESULT CALLBACK WindowProc(HWND hWnd, ...)
{
...
switch(Message)
{
case WM_CREATE:
hBit = LoadBitmap(..);
break;
case WM_COMMAND:
break;
case WM_PAINT:
hDC = BeginPaint(...);
...
EndPaint(...);
break;
case WM_DESTROY:
...
break;
default:
return DefWindowProc(...);
}
}

....


另一段代码为:
...
LRESULT CALLBACK WindowProc(HWND hWnd, ...)
{
...
switch(Message)
{
case WM_CREATE:
hBit = LoadBitmap(..);
break;
case WM_COMMAND:
i=1;
break;
case WM_PAINT:
hDC = BeginPaint(...);
...
EndPaint(...);
break;
case WM_DESTROY:
...
break;
default:
return DefWindowProc(...);
}
}

....


这两段代码的区别在于 WM_COMMAND 消息中一个有语句,一个无语句,但执行的效果大不一样,无语句的比有语句的慢了很多!!!

这是什么原因????


...全文
93 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dadudu 2001-07-05
  • 打赏
  • 举报
回复
to jacky:不为什么啊,/Yc /Yu /Fp /YX就是这么定义的。可以查查MSDN,里面说得很清楚。
brucegong 2001-07-03
  • 打赏
  • 举报
回复




会不会是头文件的包含、引用关系导致的?不过,VC、MSDN真的有很多BUG。从DLL中导出保留函数,MSDN上面的说法就是错的(99版)






jacky___c 2001-07-03
  • 打赏
  • 举报
回复
to dadudu:
为什么?
dadudu 2001-07-03
  • 打赏
  • 举报
回复
VC的生成的框架一般有一个StdAfx.cpp,它有一个编译选项/Yc"stdafx.h",表示StdAfx.cpp中stdafx.h及其之前所包含的所有头文件共同生成一个预编译头文件.pch.而其他的.cpp
文件则有一个/Yu"stdafx.h"编译选项,表示对于stdafx.h及其之前所有的头文件使用对应的预编译头文件。所以所有的cpp文件中stdafx.h之前所包含的头文件要与stdafx.cpp中相同。



shadowac 2001-07-03
  • 打赏
  • 举报
回复
你可以试试!!


gpmn 2001-07-03
  • 打赏
  • 举报
回复
1.不是bug;
2.??????????????,真的吗?

1,650

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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