• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:operator new が再定義されています)

operator new が再定義されています

このQ&Aのポイント
  • 自社製のライブラリを使用してPCゲーム開発をしています。ゲームにネット接続の機能を持たせるためにFTPダウンロードの仕組みを試作しました。
  • しかし、ゲームプログラムに組み込む際に「error LNK2005: void * __cdecl operator new(unsigned int) は既に (自社製ライブラリ).lib で定義されています。」というエラーが発生しました。
  • 自社製ライブラリとnafxcwd.libとの間で衝突が発生しているため、どちらかを削除することはできず、共存させる方法はないか悩んでいます。開発者が不在のため、質問をして解決策を探しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.1

スマートな方法とはいえませんが リンカーのオプションで 「/FORCE 未解決または複数定義のシンボルがある場合でも、リンクを強制的に終了します。」 というオプションがあります。 http://msdn.microsoft.com/ja-jp/library/y0zzbyt4(v=VS.80).aspx nafxcwd.libと(自社製ライブラリ).libの、 リンク順を入れ替えて意図通りのnewが呼ばれるように制御できるかもしれません。 ※実際試したわけではないので、できるかどうかはわかりません。 もし(自社製ライブラリ).libを修正できるなら http://www2.research.att.com/~bs/bs_faq2.html#placement-delete が参考になるかもしれません。

fillet_o_fish
質問者

お礼

回答ありがとうございます。 早速、お教えいただいたことを参考に、いろいろと試してみたいと思います。 本当なら、 「うまくいきました、ありがとう!」 といいたいのですが、 まだちょっと実装と検証に時間がかかってしまいそうなので。 まずはなにより、お答えをいただけたことにお礼申し上げます!

関連するQ&A