c++にはstring型という便利なものがあるのになぜ WIN32APIでは文字列を使うのにchar型の配列を使わないといけないのですか?

ベストアンサー

0

ThanksImg質問者からのお礼コメント

一番納得のいく回答でした。 ありがとうございました!

お礼日時:1/29 20:31

その他の回答(7件)

0

文字列には std::string/std::wstring のほかにC++17で追加された std::string_view/std::wstring_view というものがあります。 string_viewでdata() というメンバー関数を呼び出せば const char*/const wchar_t* を関数に渡せます。 また、C++の可変長引数テンプレートや畳み込み式を利用すれば文字列を連結して関数に渡すこともできます。 C++20で追加された std::format を利用すれば書式指定の関数にも渡すこともできます。 ただし、これらはVisual Studio のC++標準を「プレビュー - 最新の C++ Working Draft からの機能 (/std:c++latest)」に選べば利用ができます。

0

Win32APIはおそらくC言語がメインターゲットだ からです。(勿論C++を始めとした各種言語からで もほぼ使えますが) OSベンダーが直接提供するシステム標準ライブラ リでより「高級な」言語向けのものは同じシステ ム標準ライブラリでありながらも別の名前が付与 されて通常Win32APIとは別物と考えられているよ うです。

0

string型に似たような型は他の言語にもあります。ですがそれぞれ実装方法が違っていて、互換性がありません。 ですが、char型の配列は全ての言語に共通に存在する型なので、プログラム言語に関わらずWINAPIを使えるようにするためのものです。