+ -
当前位置:首页 → 问答吧 → 请教在工程中重新实现new和delete问题

请教在工程中重新实现new和delete问题

时间:2011-11-03

来源:互联网

现在的状况是这样的,一个项目中有已经有编译完的几个第三方库和本地代码直接编译的dll。
有没有可能在不重新编译第三方dll的情况下,让所有的new delete调用新实现的new和delete。我试了下只在一个地方实现void * __cdecl operator new (size_t size)和delete后。发现在其他库中的内存申请都没有调用新的实现。
另外在dll中能否声明线程本地存储的全局变量,这个变量怎么导出来呢?
就是类似
__declspec( thread ) int i;
写成 __declspec(dllexport) __declspec( thread ) int i;?

多谢。

作者: liangchencf   发布时间: 2011-11-03

1.可以,采用inline patch方法,替换第三方库里的new delete即可
2.可以啊,详细见Window核心编程,那里面有例子

作者: WaistCoat07   发布时间: 2011-11-04

能否给个简单的例子,万分感谢
引用 1 楼 waistcoat07 的回复:
1.可以,采用inline patch方法,替换第三方库里的new delete即可
2.可以啊,详细见Window核心编程,那里面有例子

作者: liangchencf   发布时间: 2011-12-05