Visual Studio 2010工程项目中添加预编译宏

来源:互联网 发布:网络安全技术及应用 编辑:程序博客网 时间:2024/06/03 21:53

昨天工作中对一个project 重构时碰到一个很诡异的问题,编译输出如下错误:

1>RunLogicProxy.cpp(15): error C2660: 'xdrmem_create' : function does not take 4 arguments
1>RunLogicProxy.cpp(15): error C2660: 'xdrmem_create' : function does not take 4 arguments
1>RunLogicProxy.cpp(15): error C2660: 'xdrmem_create' : function does not take 4 arguments
1>RunLogicProxy.cpp(15): error C2660: 'xdr_free' : function does not take 2 arguments


通过F12可以定位到函数xdrmem_create在头文件中的声明如下:

PUBLIC void DLLEXPORTED
xdrmem_create (
#ifdef _ANSI_C_
XDR FAR *xdrs,
void FAR *addr,
u_int size,
enum xdr_op op  
#endif
);


显然xdrmem_create可以包含四个参数,但前提是必须已经定义过宏_ANSI_C_。


右键单击该Project,在Project property --> C/C++ -->Preprocessor --> Preprocessor Definitions中加入: _ANSI_C_,然后再编译就可以通过了。

如果只想对单个文件文件使用该宏,也可以通过右键单击该源文件进行类似的操作。

原创粉丝点击