在MSVC中覆盖空闲时链接器错误

时间:2015-01-30 18:50:21

标签: c visual-c++ linker override free

我正在使用VS 2013构建DLL,并尝试覆盖某些功能,例如malloccallocreallocfree。 除了free之外,一切正常,MSVC会抛出这个错误:     错误LNK2005 _free已在Override.obj中定义

请注意,我正在静态链接到运行时库,并且我将'/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"

0 个答案:

没有答案