为了记录调用,我想覆盖对各种API的某些函数调用,但是我也想在将数据发送到实际函数之前对其进行操作。
例如,假设我getObjectName
在源代码中使用了一个被称为数千次的函数。有时我想暂时重写此功能,因为我想更改此功能的行为以查看不同的结果。
我创建一个新的源文件,如下所示:
#include <apiheader.h>
const char *getObjectName (object *anObject)
{
if (anObject == NULL)
return "(null)";
else
return "name should be here";
}
我会像往常一样编译所有其他源代码,但是在与API库链接之前,我先将其与该函数链接。这工作正常,除非我显然无法在覆盖函数中调用真实函数。
有没有一种更简单的方法来“重写”一个函数而又不会得到链接/编译错误/警告?理想情况下,我希望能够仅通过编译和链接一个或两个额外的文件来覆盖该功能,而不是随意使用链接选项或更改程序的实际源代码。