0
我有一個很大的(百萬行)VC++項目,並且想要在項目中使用PPL(並行模式庫)。該項目實現了一個自定義的全局運算符new和operator delete函數。問題是,PPL(在調試版本)使用自己的使用PPL和操作符new override
無效*運營商新的[](爲size_t CB,詮釋nBlockUse,爲const char * szFileName,INT n線段)
,但是當它解除分配,我的運算符delete(void *)被調用,並且由於內存佈局完全不同,所以這不起作用。
我的問題是,是否有一種方法可以在調試版本中使用PPL而不會放棄我的全局新增和刪除操作符。有這些全球新的&刪除覆蓋,從我的項目中刪除他們目前不是一個選項。
對不起,我應該已經提到我正在使用VS2013。 當我嘗試重寫 無效* __cdecl的operator new []( 爲size_t常量大小, INT常量block_use, 字符常量* FILE_NAME, INT常量LINE_NUMBER ) 鏈接器將報告 LIBCMTD。 lib(dbgnew.obj):錯誤LNK2005:已在UDMemory.obj中定義的「void * __cdecl operator new [](unsigned __int64,int,char const *,int)」(?? _ U @ YAPEAX_KHPEBDH @ Z) /強制:多鏈接器選項也不能解決問題。 – 2014-09-07 17:14:12