none
VS6からVS2008へ移植した際に、ワーニングC4995がでます。 RRS feed

  • 質問

  • VS6で作成したプロジェクトをVS2008でコンパイルした際に、ワーニングC4995がでます。

    出所は、DAOのクラス定義部分です。

    MSDNライブラリで調べたところ、"#pragma deprecated()"でマークされている部分があるためと書かれていますが、

    ソースコードを検索してみましたが上記のプラグマを定義している個所が見つかりませんでした。

    ディスエーブルにしてワーニングを消すことは可能なのですが、なぜこのワーニングが出るのか調べても見つからず困っています。

     

    ディスエーブルにしないで(コンパイラの警告レベルも変えずに)ワーニングを潰せる方法をご存知の方がいましたら教えていただけないでしょうか?

    2008年7月25日 4:35

回答

  •  ぺけぽん さんからの引用

    初心者的な質問で恐縮ですが、今後MFCライブラリのDAOはサポートされなくなるということなのでしょうか?

     

    HELPを読む限りでは、サポートされなくなる関数を使っているとあります。

    警告メッセージの中に正にその関数の名前が出ているのではないかと思うのですが、

    関数名はどのようになっているのでしょう。

     

    あと、DAOについて御自分でも調べてみる事をお勧めします。

    隣にいる人に聞くのと違って掲示板で聞くくらいなら自分で調べた方が早いです。

    いつレスがつくかもわかりませんしね。

    既に調べているのであれば、仕方ないですけれど。

     

    2008年7月25日 6:50

すべての返信

  • HELPで調べるとわかると思いますが、C4995は将来未対応になる可能性がある関数を使用していると

    出る訳ですから、それを承知の上で使っているならHELPにもある通り、そのソースだけ警告をオフにするしか無いと思います。

     

    将来未対応になる関数を使うことを良しとしないのであれば、代替の手段に置き換えるべきだと思いますよ。

    単純に警告潰しに走るのではなく、警告の意味を汲んだ上で対処するべきでしょう。

    逆に推奨されない関数を使っていると言うことを忘れないようにあえて警告を残すと言うのも一つの選択だと思います。

     

     

     

    2008年7月25日 4:48
  • PATIO様

     

    早速のご返答ありがとうございます。

     

    初心者的な質問で恐縮ですが、今後MFCライブラリのDAOはサポートされなくなるということなのでしょうか?

     

    2008年7月25日 5:36
  •  ぺけぽん さんからの引用

    初心者的な質問で恐縮ですが、今後MFCライブラリのDAOはサポートされなくなるということなのでしょうか?

     

    HELPを読む限りでは、サポートされなくなる関数を使っているとあります。

    警告メッセージの中に正にその関数の名前が出ているのではないかと思うのですが、

    関数名はどのようになっているのでしょう。

     

    あと、DAOについて御自分でも調べてみる事をお勧めします。

    隣にいる人に聞くのと違って掲示板で聞くくらいなら自分で調べた方が早いです。

    いつレスがつくかもわかりませんしね。

    既に調べているのであれば、仕方ないですけれど。

     

    2008年7月25日 6:50
  • PATIO様

     

    ご返答ありがとうございます。

    VS2008のMFCライブラリAfxDao.hを見たところ、問題のクラスがプラグマ指定されていました。

    ライブラリそのものに入れていることから個人的な推測ですが、サポートしなくなるようですね。

     

    ネットで調べて見ましたが、今回のワーニングに関して情報がなかったため投降した次第です。

    ADO.netへの移行を検討してみます。

    ありがとうございました。

    2008年7月25日 7:01