我想在鏈接時使用自定義malloc替換默認的malloc。但是,當我試圖在我的程序重新定義的malloc,我得到這個錯誤:有沒有辦法在Windows上的鏈接時重新定義malloc?
MSVCRT.lib(MSVCR80.dll) : error LNK2005: _malloc already defined in test.lib(test.obj)
這完全適用於任何Unix,它適用於Windows與大多數功能,但不能使用malloc。我怎樣才能做到這一點?與malloc不同的是,它不允許覆蓋它?
我知道我可以用我的自定義malloc替換malloc的每個調用,或使用宏來做到這一點,但我寧願不修改每個第三方庫。
在同一個討論中提到「crt之前的庫」方法不能可靠地使用像(strdup) – Weidenrinde 2009-05-13 09:12:47
這樣的函數,那麼`_CrtSetAllocHook`如何:https://msdn.microsoft.com/en-us/library/ cy8c7wz5.aspx – dashesy 2016-08-08 04:53:05