在MSVC中重写free时发生链接器错误
我正在用VS2013构建一个DLL,我试图覆盖一些函数,如在MSVC中重写free时发生链接器错误,c,visual-c++,linker,overriding,free,C,Visual C++,Linker,Overriding,Free,我正在用VS2013构建一个DLL,我试图覆盖一些函数,如malloc,calloc,realloc和free。 除了免费的,MSVC向我抛出以下错误: Override.obj中已定义错误LNK2005 _free 请注意,我正在静态链接到运行库,并且我在链接器命令行中添加了“/nodefaultlib:libcmt.lib/nodefaultlib:libcmtd.lib/nodefaultlib:libc.lib” 下面是我如何重写这些函数的: extern "C" { void *ma
malloc
,calloc
,realloc
和free
。
除了免费的,MSVC向我抛出以下错误:
Override.obj中已定义错误LNK2005 _free
请注意,我正在静态链接到运行库,并且我在链接器命令行中添加了“/nodefaultlib:libcmt.lib/nodefaultlib:libcmtd.lib/nodefaultlib:libc.lib”
下面是我如何重写这些函数的:
extern "C" {
void *malloc( size_t Size )
{
return g_pCustomAlloc->Alloc( Size );
}
void *calloc( size_t Elements, size_t ElementSize )
{
return g_pCustomAlloc->CAlloc( Elements, ElementSize );
}
void *realloc( void *Ptr, size_t NewSize )
{
return g_pCustomAlloc->Realloc( Ptr, NewSize );
}
void free( void *Ptr )
{
g_pCustomAlloc->Free( Ptr );
}
} // extern "C"
代码中的g_pCustomAlloc是什么?@ShivarajBhat它是指向内存分配类的指针