- 締切済み
VisualC++6.0でdeleteがおかしい
今頃ですが、VisualC++6.0を使っています。とりあえずはこれで十分なので。で、WindowXPです。 1つのMFCAppWizardメインプロジェクトに対して、3つのライブラリ専用のサブプロジェクトを統合してプログラムを作っていますが、下記の簡単なdeleteもなぜか、出来なくなりました。 long* p; p = new long; delete p; 実行するとdelete pのところで、 NTDLL! 7c9668ad() PRONAME! free + 45 bytes PRONAME! operator delete(void *) + 9 bytes PRONAMEDlg::OnBtnCapturepicture() line 267 + 15 bytes のようなエラーが出てきます(デバッグモード)。 ちょっと気になったのが、最近、VirusBusterをインストールしましたので、実行後に、 'C:\Program Files\Trend Micro\Virus Buster 2007\TMAS_OE\TMAS_OEHook.dll' をロードしました、合致するシンボル情報は見つかりませんでした。 などというコメントが出てくるようになりました。 しかし、ちなみに全く新しいMFCAppWizardテストプロジェクトを作って、他のプロジェクトとリンク等、いっさいせずに簡単なもので動かすと、上記のコード、全く問題なく動きます。 この delete のエラーって、何が原因なのでしょうか。 考えられることがおわかりであれば、教えてください。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- charmer29-2
- ベストアンサー率25% (41/159)
回答No.5
お礼
わたしもこの辺を疑っています。 デバッグとリリースモードを混在していることはありませんが、リンクしているライブラリがシングルスレッドとマルチスレッド用が混在していたり、、、というのは、もう一度調べてみないといけないかもしれません。 この辺がほんと、めんどくさいというかわからないところです。結構いろいろとライブラリを使用しているので。 混合してはいけないこととして、 ○デバッグモードとリリースモード ○マルチスレッドとシングルスレッドのライブラリ ○ダイナミック用ライブラリとスタティック用ライブラリ ほんとめんどくさいですよねえ。 こんなの自動選択とかしてよって。 わたしもとりあえず思いつくのはこれですが、ほかにはなかったかな。 やはり、リンクしているライブラリの相性では、というのが、今のわたしの最大の疑問点です。 ありがとうございました。