Visual Studio 2010 professional でstrcpy_s()関数を使用しようとしているのですが,
error C2660: 'strcpy_s' : 関数に 2 個の引数を指定できません。とエラーが出てしまいます.
実際のコードでは以下のように記述しています.
strcpy_s(logfont.lfFaceName, cFontName);
具体的に取った行動は#include <string.h>を親クラスだけでなく子クラスでも宣言しました.しかし,インテリセンスも出ないためオーバーロードした関数の選択も出来ません.常に引数が3個の関数を勝手に呼び出そうとしてエラーが出ます.
Visual Studio 2010 prfessionalにおいて引数が2つのstrcpy_s()関数を呼び出すためにはどうすればよろしいでしょうか.
私の知識と技術では解決することができないため,みなさんのお知恵を拝借できないでしょうか.
開発環境
Windows 7(32bit版)
Visual Studio 2010 professional
No.5ベストアンサー
- 回答日時:
他の回答者さんはcharとwchar_tの違いを指摘していますが、エラーの内容が「引数が2つのstrcpy_s関数が無い」という内容なので、観点が違うかと・・・
string.hをインクルードする前に、以下のdefineをしているかどうか確認してください。
#define _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES 1
これでオーバーロードが有効になり、引数が2つでもエラーにならないはずです。詳細は参考URLにて・・・
参考URL:http://msdn.microsoft.com/ja-jp/library/ms175759 …
まさしくreset_catさんのおっしゃるとおりでした.
おかげさまで無事解決することが出来ました.
defineしないといけないとか夢にも思いませんでした.今後,同じ問題を抱えた人がここを見て参考にしてもらえたらいいなと思います.
本当にありがとうございました.
No.6
- 回答日時:
実際にVS2010で試してみました。
Win32プロジェクトを新規で作成し、_tWinMainの中にコードを記述しました。
strcpy_sだと、error C2660のほかに「IntelliSense: オーバーロードされた関数"strcpy_s"のインスタンスが引数リストと一致しません」が表示されます。
_tcscpy_sに変更したところ、エラーなくコンパイルできました。
MSDNの説明にあるように、_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMESは規定で1(有効)なので、記述の必要はないようです。
No.4
- 回答日時:
>logfont.lfFaceName
および
>cFontName
はchar型の配列になっていますか?
引数が2つの_strcpy_sはどちらもchar型配列のときに使える関数です。
(C++のtemplateで配列引数を吸収できる。)
他の方もおっしゃっていますが、「Unicode文字セットを使用する」のコンパイルオプションですと
>logfont
が LONGFONT構造体の変数と仮定すると
LONGFONT logfont;
という宣言では、lfFaceNameメンバ変数がwchar_t型の配列になります。
本当にstrcpy_sを使うのであれば、
LOGFONTA logfont;
として、CreateFontIndirectAあたりでフォントを作成してください。
まぁ、やらないでしょうが。
ちなみに、自分だったら警告消すために_tcscpy_sをつかうのもなぁ、
バッファオーバーランも確実に起こらないし、というときは API の lstrcpy を使っちゃいます。
No.2
- 回答日時:
VS2010のプロジェクトの初期設定だと、UNICODEを使用するようになっていると思います。
その場合、LOGFONTのlfFaceNameは
wchar_t lfFaceName[LF_FACESIZE];
となるので、strcpy_sの引数と型があわないと判断されるのではないでしょうか。
テンプレートタイプを呼び出したいのであれば、_tcscopy_sまたはwcscopy_sを使う必要があるのではないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
- C言語・C++・C# visual studio 2019において、宣言していない変数があるのにエラーなくビルド出来ました 6 2023/03/08 16:32
- C言語・C++・C# Microsoft Visual Studio Community 2019 タブキーが入力できない 1 2022/04/30 06:39
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- ソフトウェア VisualStudio のデータブレークポイントを有効にする方法 1 2023/05/01 09:42
- その他(プログラミング・Web制作) Scratchについてです 作ったプログラムをコンピュータに保存してそのまま何もいじらずにそのプログ 1 2022/05/19 18:51
- Windows 10 Visual StudioとVisual C++ Build Toolsについて 1 2023/04/16 03:42
- Visual Basic(VBA) VSコードでバックスペースキーが効かない(パイソン) 1 2022/11/09 04:00
- その他(プログラミング・Web制作) Visual StudioでDjangoのプロジェクト配下のappを作成する方法 1 2022/05/01 03:47
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】NEW演歌
【大喜利】 若い人に向けたことは分かるけど、それはちょっと寄せ過ぎて変になってないか?と思った演歌の歌詞
-
秘密基地、どこに作った?
小さい頃、1度は誰もが作ったであろう秘密基地。 大人の今だからこそ言える、あなたの秘密基地の場所を教えてください!
-
土曜の昼、学校帰りの昼メシの思い出
週休2日が当たり前の今では懐かしい思い出ですが、昔は土曜日も午前中まで学校や会社がある「半ドン」で、いつもよりちょっと早く家に帰って食べる昼ご飯が、なんだかちょっと特別に感じたものです。
-
いけず言葉しりとり
はんなりと心にダメージを与える「いけず言葉」でしりとりをしましょう。 「あ」あら〜しゃれた服着てはりますな 遠くからでもわかりましたわ
-
好きな和訳タイトルを教えてください
洋書・洋画の素敵な和訳タイトルをたくさん知りたいです!【例】 『Wuthering Heights』→『嵐が丘』
-
Visual Studioのstrcpy_sについて
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
バッチからsqlplusの接続エラー...
-
コンパイルできません。
-
デバッグ中のエラーのことで教...
-
RightとLeft関数のライブ...
-
visual C++ でビルドの中止がで...
-
Excelのエラーで困ってます。
-
WindowsからLinuxへの移植
-
fortranでプログラムを実行する...
-
ACCESSのDate関数のエラー表示...
-
LPCWSTRとchar
-
ユーザフォーム開くとエラーになる
-
visualstudioでコンパイルでき...
-
VBScriptのエラーの見つけ方及...
-
C++のコンパイラーでエラー原因...
-
visual C++ でaruduinoとシリア...
-
実行時のlibxxx.soのオープンエ...
-
sys/time.hのインクルードがで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
Excelのエラーで困ってます。
-
fortranでプログラムを実行する...
-
適切な変換関数が存在しない???
-
HEWを使用しているのですが、こ...
-
コンパイルできません。
-
バッチからsqlplusの接続エラー...
-
デバッグ中のエラーのことで教...
-
visual C++ でビルドの中止がで...
-
VB2008で定数に色の設定をした...
-
ビルド失敗 指定されたファイ...
-
Handlesについて
-
RightとLeft関数のライブ...
-
エラー 'iostream.h' : No su...
-
sys/time.hのインクルードがで...
-
DLL関数を使ったプログラム
-
Visual Studioのstrcpy_sについて
-
レコードセットをcloseする所で...
-
LPCWSTRとchar
おすすめ情報