無料ブログはココログ

最近のトラックバック

2024年2月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29    

« 余震続くね | トップページ | VC++2008 GetLastError の コードを 説明文に変換 »

2011/04/21

VC++2008 warning C4996 の対処

VC++(Win32SDK)を久々いじっています。
C言語の感覚が薄れています(^^;

 さて、今回は備忘録。
Unicodeを意識したプログラミングだと、文字列関連関数が「strcpy」とかで無く「_tcscpy」にするらしい。
これは、マクロ(#define)で置き換えしてくれるらしい。

しかし、ワーニングが出て困る。 「warning C4996」
ワーニングは、出てもプログラムが動かないわけではないが、昔会社の先輩からは、「ワーニングは、可能な限り、いや、全部取れ」と言われていたので、それを思い出しネットで調べた、

で、「_tcscpy」でなく、「_tcscpy_s」を使えと書いている(^^;
その説明のマイクロソフトのサイト

昔でいう、strncpy か?

で、旧ソースを あまりいじらないでワーニングを取る方法は、

#define _CRT_SECURE_NO_WARNINGS

#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1

前者は、ただ、ワーニング警告を非表示にするだけみたい。

後者を定義すると、コンパイル時 「strcpy」を「strcpy_s」と変更して、第二パラメータも自動で指定してくれるそーです。(テンプレートのオーバーロード・・・はて、勉強不足でチョイと意味がわからん)

« 余震続くね | トップページ | VC++2008 GetLastError の コードを 説明文に変換 »

プログラミング」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: VC++2008 warning C4996 の対処:

« 余震続くね | トップページ | VC++2008 GetLastError の コードを 説明文に変換 »