'strcpy'の新しい形式とは

解決


御のぼりさん  2007-09-23 20:32:29  No: 66407  IP: 192.*.*.*

>警告 4 warning C4996: 'strcpy' が古い形式として宣言されました。

という警告がでました。
'strcpy'の新しい形式とはなんでしょうか?

VC2005です。

編集 削除
επιστημη  URL  2007-09-24 01:33:36  No: 66408  IP: 192.*.*.*

マニュアル(MSDN)に明記されています。
http://msdn2.microsoft.com/ja-jp/library/kk6xf663(VS.80).aspx

...セキュリティが強化されたバージョンが使用可能になったので、これらの関数は使用されなくなりました。「strcpy_s、wcscpy_s、_mbscpy_s」を参照してください。

編集 削除
御のぼりさん  2007-09-24 03:03:07  No: 66409  IP: 192.*.*.*

_tcscpy(  
の代わりに
どれをしていしてやってもエラーが増えるだした!
なにがいけないのでしょうか?

編集 削除
επιστημη  2007-09-24 03:50:39  No: 66410  IP: 192.*.*.*

_tcscpy_s じゃまいか。

編集 削除
御のぼりさん  2007-09-24 04:20:13  No: 66411  IP: 192.*.*.*

エラー  24  error C2660: 'strcpy_s' : 関数に 2 個の引数を指定できません。
というエラーが出ます。
というエラーがでますが?

編集 削除
επιστημη  2007-09-24 05:48:41  No: 66412  IP: 192.*.*.*

おねがいだからマニュアルを読んでください。

編集 削除
御のぼりさん  2007-09-24 14:18:39  No: 66413  IP: 192.*.*.*

ちがうんです。
1個の引数をしていしてあげても
>エラー 24 error C2660: 'strcpy_s' : 関数に 1 個の引数を指定できません。
というエラーがでるんです!

編集 削除
YuO  2007-09-24 18:42:20  No: 66414  IP: 192.*.*.*

何が違うのかが全然解らないのですが。

とりあえず,やっぱりMSDN読んでください。
strcpy_sの引数は3個あります。1個の物は存在しません。

編集 削除
どら  2007-09-24 20:50:12  No: 66415  IP: 192.*.*.*

同じようなことをしてくれるからと言って、関数の引数・戻り値が同じとは限りませんよ?
まずは皆さんの言うとおり、MSDNでstrcpy_s関数をごらんになった方が良いと思います。

編集 削除
御のぼりさん  2007-09-25 05:30:31  No: 66416  IP: 192.*.*.*

ありがとうございます!みなさん!
三個の引数ですね!
errno_t strcpy_s(
   char *strDestination,
   size_t numberOfElements,
   const char *strSource 
);
と書いてありますが
どういう風に指定してあげればいいかわかりません。
どなたか教えていただけるとありがたいのですが?

編集 削除
επιστημη  2007-09-25 07:22:54  No: 66417  IP: 192.*.*.*

マニュアルに明記されています。

編集 削除
go  2007-09-25 10:10:46  No: 66418  IP: 192.*.*.*

ここ読んでください。
http://msdn2.microsoft.com/ja-jp/library/td1esda9(VS.80).aspx

strDestination
    コピー先の文字列バッファの場所。

numberOfElements
    コピー先の文字列バッファのサイズ。

strSource
    null で終わる元の文字列バッファ。

編集 削除
御のぼりさん  2007-09-28 03:49:36  No: 66419  IP: 192.*.*.*

わかりましたgoさん!
ありがとうございました!

編集 削除