2010-06-18 32 views
0

我想钩住新的和删除操作符。但是我无法找到这些操作员驻留的原始DLL。我使用msvcr90.dll,msvsr90d.dll,msvcrt.dll,kernal32.dll,ole32.dll和一些更多的dll。但是我的间谍应用程序无法找到新的和删除的操作符。新增和删除容器Dll

如果有人能告诉我在哪个DLL中定义了新操作符和删除操作符,请很好。

+0

定义您自己的新操作符和删除操作符是合法的。 – 2010-06-18 12:53:48

回答

0

正如你所说,newdelete是运营商,而不是功能。因此,作为仅限C++的功能,它们可能会在标准C++库(libstdC++)中定义,也可能在您使用的编译器中定义。

+0

在Windows上,它们位于不同的库中,具体取决于线程模型和发布/调试。 – Joe 2010-06-18 11:29:50

1

它们在msvcr90.dll中。不要忘记,这些是C++操作符,名称修改算法在它们上完成了相当多的工作。从DUMPBIN /出口输出复制:

15 F 00063E99 [email protected]@Z   // void * __cdecl operator new(unsigned int) 
... 
17 11 00063F03 [email protected]@Z   // void __cdecl operator delete(void *) 

我用undname.exe实用程序将重整名称转换回。还有几种重载。