エンジニアリングとお絵描き

お絵描きが趣味のエンジニアが、誰かの為になりそうなことや未来の自分の助けになりそうなことを書き残します.

const char *" の引数は型 "char *" のパラメーターと互換性がありません

久々に更新します.

VisualStudioを使用してウェブアプリ制作をしていたところ、躓いたので記録を残します。

「"const char * " の引数は型 "char * " のパラメーターと互換性がありません」

というエラーが出ました。 これは、C++では文字列リテラルの型はconst char[]で、これを実引数に使用するとconst charに変換され、関数の引数がcharだと互換性がないというものらしいです。

参考:https://dixq.net/forum/viewtopic.php?f=3&t=20056#p150167

この問題は関数の引数にconstを付けちゃえば解決すると思うのですが、今回はライブラリに含まれている関数であったためそれは難しく、困ってしまいました。 解決策としては、[C/C++]→[すべてのオプション]→[その他のオプション]に /Zc:strictStrings- と記入しました。

参考

https://dixq.net/forum/viewtopic.php?f=3&t=20056#p150167

https://docs.microsoft.com/ja-jp/cpp/build/reference/zc-strictstrings-disable-string-literal-type-conversion?view=vs-2019

デフォルトではこのようなエラーは起きないみたいなのですが、実際に起きたので記録しました。 因みに、私はVisualStudioでプロジェクトを作成する際に「Windowsデスクトップアプリケーション」を選択しました。もしかしたらこれが原因なのかもしれません。