コンテキストについては、この質問を参照してください。参照されていないライブラリをリンクすると、プログラムが壊れます
次のプログラムがあります。
#include <iostream>
int main( int argc, char* argv[] )
{
std::cout << "Hello world" << std::endl;
int *p;
p = new int(3);
std::cout << *p << std::endl;
delete p;
return 0;
}
サードパーティのライブラリにリンクするまでは問題なく動作します。より大きなプログラムで必要になる Abaqus ライブラリにリンクすると、上記のプログラムを実行しようとするとクラッシュしますdelete p;
。Dependency Walker を使用して、への呼び出しがAbaqus によって提供された定義operator new
にリンクされていることを発見しました。operator new
ただし、への呼び出しoperator delete
は標準定義にリンクされています。
new
/delete
を::new
/に置き換えても::delete
、同じ結果が得られます。
標準の新規/削除演算子を解決する方法はありますか? または、これらの演算子の正しい (標準) 定義に Visual Studio をリンクさせることはできますか?