2012-04-15 12 views
0

私のプロジェクトでは、グローバル演算子newとdelete([] too)をリロードしようとしています。私が初めてでコンパイルしようとすると、私はリンクエラーを取得:私は二度目でコンパイルしようとすると、エラーが魔法MS VC++コンパイラの不明確

Main.obj : error LNK2005: "void * __cdecl operator new(unsigned int)" ([email protected]@Z) already defined in LIBCMTD.lib(new.obj)

消えます! しかし、時々戻ってくる。 この問題を解決する方法はありますか?

実行時ライブラリ:MTd。

コード:

void operator delete(void * pointer){LALALA} 

それとも

void __cdecl operator delete(void * pointer){LALALA} 

このエラーを返す私は手順に従ってください:新しい(および他の)再ロード

  1. 削除
  2. コンパイル
  3. A
  4. が消え、他の場合のエラーで

このエラーをコンパイルして取得してくださいリロードし得ます。これの理由は何ですか?

+0

ファイルが最初にコンパイルされ、このエラーが発生します。 2回目は、ファイルが変更されていないと再コンパイルされないため、エラーは表示されません。エラーを返す行を投稿してください。 – gulyan

+0

@gulyan、既に。 –

答えて

-1

あなたが暗黙的に宣言する必要が '新しい' と静的メンバ関数

void *型new演算子(size_tのサイズ)として 'を削除';

void operator delete(void * p);

+0

いいえ、statics opeators newとdelete no call =( –

関連する問題