From: http://blog.csdn.net/liyelun/article/details/5416253

今天修改工程,为了提高编译速度,将#inclue<dshow.h>放到了stdafx.h中,然后重新编译工程。结果有两个文件编译没通过,并且导致的编译错误近百个。
觉得奇怪,没有什么大的改动啊,难道是#include<dshow.h>搞的鬼?于是,将这条语句挪回原来的位置,重新编译,通过了。
到底怎么回事?
又把这条语句放入stdafx.h中,重新编译,仔细观察出错编译结果,第一个警告很让人迷惑,warning C4003: not enough actual parameters for macro 'SubclassWindow'
SubClassWindow什么时候成宏了啊,记得是一个函数啊?说不定是编译器的错误,不管了,往下看。下面的看了就头大了,什么BOOL重新定义了,什么RECT定义找不到啊,一大堆根本不可能的错误,难道编译器真的出问题了?
慢着,为什么说SubclassWindow是宏呢?如果编译器真的出问题了,工程中其他使用RECT的文件怎么会顺利编译呢?直觉告诉我,和这个SubclassWindow有关。于是看了另外一个文件的出错信息,第一行是一个相同的warning。搜了一下工程,只有这两个文件用到了subclasswindow,看来罪魁祸首已经找到了。
如何解决呢?
警告信息写着呢,SubclassWindow这个宏的参数不够,看来是有地方把它定义成宏了,那只要加入#undef SubclassWindow应该就可以了。试了一下,果真可以了。
那到底是什么地方重新定义了SubclassWindow呢?在本地是不好找了,上baidu搜了一下,相关资料不多,但刚好有朋友碰到过相同的问题,并且给出了详细的解释,下面那位朋友原文的转发。
原来在一个项目中写好的类,运行一直没有问题。这次为了版本升级,重新包含在新的项目中,编译始终报错:
 
warning C4003: not enough actual parameters for macro 'SubclassWindow'
 
pWnd->SubclassWindow(m_hWndHooked);
 
源码中这句话怎么也通不过,这子类化窗体哪里写错了?反复对比2个版本,没有任何差异阿...
 
又把类库从头到尾分析了一遍,足足花去3个小时!.... ....从源码到编译环境设置,都没有什么差异阿...
 
实在想不通.
 
最后还是在MSDN里找到这个报告:
 
BUG: C4003: Not Enough Parameters for SubclassWindow Macro
Article ID : 150076
Last Review : September 18, 2003
Revision : 3.0
This article was previously published under Q150076
 
 
SYMPTOMS
When compiling a Microsoft Foundation Class (MFC) application that uses the Windowsx.h header file and calls CWnd::SubclassWindow(), you may get the following error:
 
 
warning C4003: not enough actual parameters for macro 'SubclassWindow' error C2059: syntax error : ')'
 
 
CAUSE
The Windowsx.h file is a header that includes message cracker macros to help programmers write more portable Windows-based applications. The header file contains a preprocessor macro named SubclassWindow. The macro bears the same name as the CWnd::SubclassWindow() member function. The macro has two parameters; the member function has only one parameter. The preprocessor tries to expand the symbol SubclassWindow when it is found.
 
 
RESOLUTION
You can un-define the macro as follows:
 
#undef SubclassWindow      
 
因此,我的项目出错原因也很明显了,因为Dshow.h里面包含了windowsx.h。
总结
l         一定要注意编译器的异常警告信息
l         修改工程配置或者改变文件包含关系的时候,最好能保证每次或者每几次的改动都是可编译的,这样会更容易定位错误。

关于 not enough actual parameters for macro ...相关推荐

  1. not enough actual parameters for macro 'min'(QT与vs2010)

    解决方案见以下: qdatetime.h:"min"宏的实参不足 | 浏览:73 | 更新:2015-01-06 12:36 百度经验:jingyan.baidu.com 最近用V ...

  2. QTime使用中遇到的”not enough actual parameters for macro 'min'“问题

    最近在使用QTime制作实时显示当前时间的功能,在包含了QTime的头文件之后,编译时居然报错"not enough actual parameters for macro 'min'&qu ...

  3. 单片机c语言too many actual parameter,出现 too many actual parameters 怎么回事??? 是不是程序有问题???...

    出现 too many actual parameters 怎么回事??? 是不是程序有问题???0 #include #define uint unsigned int #define uchar ...

  4. c语言error c2198,为何会出现error C2198: 'create' : too few actual parameters呢?

    已知稀疏矩阵用三元组表示,编写C=A*B的算法. #include #include #define smax 30 typedef int datatype; typedef struct { in ...

  5. C语言中实际参数太多,c – 宏的实际参数太多了?

    码: #include using namespace std; #define ADD(x,y) ((x)+(y)) int main( int argc, char** argv ) { cout ...

  6. VC6.0常见英文错误对照表

    fatal error C1003: error count exceeds number; stopping compilation 中文对照:(编译错误)错误太多,停止编译 分析:修改之前的错误, ...

  7. C语言报错警告合集(转)

    C常见错误 附录1 常见错误中英文对照表 fatal error C1003: error count exceeds number; stopping compilation 中文对照:(编译错误) ...

  8. c语言代码大全表解释_C语言常用错误代码释义大全,值得收藏!

    对于刚学编程,刚接触C++的新手来说,编译运行报错是最头疼的一件事,爆出一堆英文,英语差一点的又不知道什么意思,所以也不知道如何去改,在此,我给大家传一份常见错误中英文对照表及简单解释,希望可以帮到大 ...

  9. VC调试--输出调试字符串(含示例代码)

    VC调试 输出字符串 更新日期:2012-11-7 代码下载:trace.zip (请不要直接使用迅雷下载) 或者到邮箱下载: vcshare@ qq.com(密码:share88) 测试环境:vs2 ...

最新文章

  1. 让机器学习自动帮我们建模,这4个Python库能让你大开眼界
  2. ASP.NET -- 缓存技术(1)
  3. JAVA线程池的简单实现及优先级设置
  4. 自用Java爬虫工具JAVA-CURL已开源
  5. JavaScript 参考教程——写在前面
  6. django 学习 (四) 模板标签
  7. MySQL Index Condition Pushdown
  8. 资深架构专家聊架构之道:规划、简化和演化
  9. UIKeyboard键盘相关知识点
  10. 【华为云技术分享】云小课 | 迁移第三方云厂商数据至OBS,两种方式任你选
  11. M1芯片的Mac电脑如何进入到恢复模式?
  12. sql日志文件查看工具
  13. NAND Flash 芯片测试
  14. sublimetext text3比较两个文档的不同
  15. 快速实现中文翻译多国语言
  16. Qt 导出pdf文件(表格、图片)
  17. G003-186-07
  18. 维智科技时空AI技术赋能金融行业
  19. 智能媒体管理产品文档转换/预览功能介绍(1)---Cloud Native架构
  20. 转到计算机科学与技术专业的申请书,转专业的申请书范文(精选5篇)

热门文章

  1. openfire 的配置文件
  2. centos配置ftp
  3. 分布分析和分组分析_如何通过群组分析对用户进行分组并获得可行的见解
  4. leetcode851. 喧闹和富有(dfs)
  5. c语言 二进制压缩算法_使用C ++解释的二进制搜索算法
  6. 置信区间估计 预测区间估计_估计,预测和预测
  7. seaborn线性关系数据可视化:时间线图|热图|结构化图表可视化
  8. app之---豆果美食
  9. pygame游戏开发入门例子
  10. ViewPager中Fragment的重复创建、复用问题