2020/06/22
VisualStudioを使う必要があるので、そこで知ったことを逐次メモしておくことにした。ガチ初心者なので、同じ境遇の方の役に立ったら嬉しい。
なんかプログラムが動かない?
「デバッグ実行→停止」をしても何も起こらない。
↓
「停止」ボタンではなく「中断」ボタンを押したら原因がわかった。
xxx.dll
が足りないようであった。
「中断」した時に出てきた画面をぽちぽちしてたら進んだ。
ライブラリが存在しないと言われる
パスを通す必要がある。パスとは、ライブラリがどこに置いてあるのかを教えるものだと解釈している。
以下に、パスを指定する。C¥…¥…
みたいなやつ!
デバッグ → …のプロパティ → C/C++ → 全般 → 追加のインクルードディレクトリ → (パスを追加)
デバッグ → …のプロパティ → リンカー → 全般 → 追加のインクルードディレクトリ → (パスを追加)
E0870 マルチバイト文字のシーケンスが無効です
通常、以下で除去可能のようである。
デバッグ → …のプロパティ → 構成プロパティ → 詳細 → 文字セット → 「マルチバイト文字セットを使用する」
私の場合は、これだけではエラーを除去できなかった。 そこで、該当コードの文字化け前のものを別のエディタで開いたところ、文字化けしないことが確認されたので、そちらから手動でコピペしたらうまく動作した。
原因を自分なりに考えたところ、「文字化けした状態を保存してしまったために適切な文字コードで読み込めなくなった」のかなと思った。
D8016 コマンドラインオプション/ZI
と/Gy-
は同時に指定できません
これにかんして、エラ〜コードのページへ飛んでも、解消方法がイマイチわからなかった。 ぽちぽち設定を見たところ、
プロジェクト → プロパティ → C/C++ → コード生成 → 関数レベルでリンクする → 「はい(/Gy)」
D9035 オプション'Gm'の使用は現在推奨されていません。今後のバージョンからは削除されます。
エラーではないが、今後のバージョンからは削除されるということで、設定を変更した。
プロジェクト → プロパティ → C/C++ → コード生成 → 宰相リビルドを有効にする → 「いいえ(/Gm-)」
C2001 定数が2行目に続いています
マイクロソフトのエラー説明ページを見たが、エラーの原因はわからなかった。
そこで、文字コードをutf-8
にした。
その設定では、ビルドに時間がかかっているかと思いきや、1分ほどしてVisualStudioの応答がなくなった。無念。
そのままプログラムを再起動したら文字化け状態でプログラムが起動できた。
プロジェクト → プロパティ → C/C++ → コマンドラインオプション → 追加「/utf-8」
C4828 オフセット 0x?? から始まる、現在のソースの文字セット(コードページ 65001)では使用できない文字がファイルに含まれています。
なんだか、日本語の読み取りがおかしいみたい。
日本語を使うのをやめた
ライブラリに対して、膨大な数の警告が表示されるのが嫌だったので、当警告を指定して非表示にした(本来はやるべきではない。長期間コードを扱う場合は、正式に対処すべきである。)
プロジェクト → プロパティ → C/C++ → 指定の警告を無効にする → 「4828」
デバッグ実行時に、コードの変更が反映されない
どんなにコードを確認しても思った通りの挙動をしないと悩んでいたら、VisualStudioの仕様(?)のようである。 どうやら、リビルドかなんかがおかしい気がしたので、以下を押したら訳もわからず解決した。 部分コンパイルとかが悪さしているのかなぁ・・・
ビルド → ソリューションのクリーン
ビルドツールが見つからない問題
エラー文は以下.
The build tools for vXXX (Platform Toolset = 'vXXX') cannot be found.
......
指定されたビルドツールが見つからないと指摘されているので,以下の手順で指定ビルドツールを変更するとよい.
プロジェクト → プロパティ → 構成プロパティ → 全般 → プラットフォーム ツールセット → 「(インストールされていません)と書かれていないバージョンに設定」
思ったこと
IDEってはじめて使ったけど、めっちゃいいやつ!! 特に、VisualStudioの場合はエラーコードを細分化してくれてて、IDE上に表示されたエラーコードをクリックしたら該当ヘルプページをブラウザで開いてくれるのがナイス! ただ、何も設定していない部分でエラーを起こすのはやめてほしい・・・