Excel 用预处理器替换函数

Excel 用预处理器替换函数,excel,build,preprocessor,project,codeblocks,Excel,Build,Preprocessor,Project,Codeblocks,我必须做一件可怕的事情,即在预编译时用不同的函数调用、不同数量的参数自动替换函数调用。 例如: #包括 int函数更改(无效*a,无效*b,无效*c,无效*d){ 返回0; } int NewFunc(void*a,void*c,int d){ 返回1; } #定义函数更改($1,$2,$3,$4)NewFunc($1,$3,$4) int main() { INTA=1,b=2,c=256; int v=函数更改(&a+1,c+1,&b,2*c); } 此代码有效,即在main()中调用Ne

我必须做一件可怕的事情,即在预编译时用不同的函数调用、不同数量的参数自动替换函数调用。 例如:

#包括
int函数更改(无效*a,无效*b,无效*c,无效*d){
返回0;
}
int NewFunc(void*a,void*c,int d){
返回1;
}
#定义函数更改($1,$2,$3,$4)NewFunc($1,$3,$4)
int main()
{
INTA=1,b=2,c=256;
int v=函数更改(&a+1,c+1,&b,2*c);
}
此代码有效,即在
main()
中调用
NewFunc()
而不是
FuncToChange()

现在我想删除#define(原因是我无法修改代码),并通过设置IDE的构建选项获得相同的结果

IDE是10.05

我已经尝试将以下内容添加到项目/项目构建选项/编译器设置/#定义中:

NewFunc($1, $3, $4)=FuncToChange($1, $2, $3, $4)
但一切都没有改变。有人知道吗

提前谢谢你

彼得罗

平台
GCC/MinGW
Windows7 64位


这个问题背后的原因是:

我必须将Excel插件从XP 32位移植到Windows 7 64位。这个插件是用代码块开发的,我不能更改工具集。文件FRAMEWRK.C(Excel2010 XLL SDK“2010 Office System Developer Resources”的一部分)已经发展,现在使用对非标准函数的调用,如
memcpy_s()
,在MinGW中不可用。因此,使用预处理器,我用
memcpy()
替换
memcpy()
,处理不同的参数。

好。我将
#define
移动到它自己的include文件中。然后我使用命令行选项将其指定给GCC 这样,文件将包含在每个源文件的顶部。

确定。我将
#define
移动到它自己的include文件中。然后我使用命令行选项将其指定给GCC
这样做,,该文件包含在每个源文件的顶部。

你能解释一下你为什么觉得需要这样做吗?@VictorT:我更新了我的问题,解释了背后的原因。你能解释一下你为什么觉得需要这样做吗?@VictorT:我更新了我的问题解释背后的原因。