相关疑难解决方法(0)

86
推荐指数
8
解决办法
4万
查看次数

覆盖C中的函数调用

我想为了记录调用而覆盖对各种API的某些函数调用,但我也可能希望在将数据发送到实际函数之前对其进行操作.

例如,假设我getObjectName在源代码中使用了一个名为数千次的函数.我想暂时覆盖此函数,因为我想更改此函数的行为以查看不同的结果.

我创建了一个像这样的新源文件:

#include <apiheader.h>    

const char *getObjectName (object *anObject)
{
    if (anObject == NULL)
        return "(null)";
    else
        return "name should be here";
}
Run Code Online (Sandbox Code Playgroud)

我像往常一样编译所有其他源代码,但是在链接API的库之前我首先将它链接到此函数.这工作正常,但我显然不能在我的重写函数中调用真正的函数.

是否有一种更简单的方法来"覆盖"一个函数而不会链接/编译错误/警告?理想情况下,我希望能够通过编译和链接一个或多个额外的文件来覆盖该函数,而不是通过链接选项或改变我的程序的实际源代码.

c linker overriding function

68
推荐指数
7
解决办法
9万
查看次数

编写自己的内存管理器

我想写自己的内存管理器.目标语言是C++,内存管理器的目标主要是帮助调试.它应该检测双重释放,内存覆盖等.当然 - 我想了解内存管理.

有人可以给我一些提示,以便我可以学习如何编写这样的内存管理器吗?

谢谢您的帮助.

c++ memory-management

21
推荐指数
2
解决办法
2万
查看次数