トップ | puarts.com
メモ  |  制作記  |  開発記  |  日常の記録  |  デジタルコンテンツ制作  |  ファイアーエムブレム  |  ゲーム  |  C/C++  |  C#  |  PC/ソフトウェア  |  Web 開発  |  スクリプト言語  |  その他プログラミング  |  
「VisualStudio」に関連する記事一覧

0  1  

Visual Studio 2017 でデバッグ実行時にエラーが出てデバッグ実行できない

2017/12/28 18:20

Visual Studio 2017 でデバッグ実行時に毎回「プログラム 'C:\Projects\Hoge\x64\Release\Hoge.exe' を開始できません。起動されたオブジェクトはクライアントから切断されました。」というエラーダイアログが出るようになってしまいました。同じエラーに遭遇した人のために解決方法をメモしておきます。

GeForce GTX 1060 に入れ替えたら Visual Studio 2015 が強制終了するようになる

Vulkan を触ってみようと Vulkan SDK をインストールしてサンプルを動かしてみようとしたら、私の PC の GeForce GTX 560 Ti が Vulkan 対応しておらず、実行できませんでした。

ちょうどいい機会だったので ZOTAC GeForce GTX 1060 Mini 3GB を購入しました。

ところが、問題が。このグラフィックカードに対応するドライバーを入れたら、なぜか Visual Studio 2015 で C++ プロジェクトを開くと、Visual Studio がクラッシュするようになってしまいました。

色々試しましたが、どうしようもなかったので、Visual Studio 2015 を一旦アンインストールして、インストールし直したら直りました。

もう直らなかったらどうしようかと思いましたが、直ってよかった..

Visual C++ 2005 再頒布可能パッケージのインストールではまったのでメモ

2016/05/22

ディスク交換のために Windows 7 を再インストール後、Windows 10 にアップグレードして、アプリケーションの動作確認をしていました。起動しようとするときに「サイドバイサイド構成が正しくありません」というエラーが出て、すぐにVC++ランタイムのバージョンが古いんだろうなと思い、Visual C++ 2005 再頒布可能パッケージをインストールしようとしました。

Visual C++ 2005 再頒布可能パッケージのインストールで、若干はまったのでメモを残しておきます。

まず、インストールしても「インストールが完了しました」的な表示が出ずにインストーラが即終了してしまうので、インストールに失敗したと思ってしまいました。

しかし、イベントビューアでエラーを確認しても特にエラーは出ておらず。コントロールパネルのプログラムのアンインストールでインストールされた項目を確認すると、ちゃんとインストールされていました。ここで若干のはまり。

そして、「Visual C++ 2005 再頒布可能パッケージ」の検索結果でMicrosoft Visual C++ 2005 再頒布可能パッケージ (x86)のダウンロードページがトップに来るのですが、これではだめで、Microsoft Visual C++ 2005 Service Pack 1 再頒布可能パッケージ ATL のセキュリティ更新プログラムのインストールが必要でした。

以上で、アプリケーションが正しく動作するようになりました。

Visual Studio で Cppcheck を使う

2016/03/19

今作っているC++ライブラリで、たまに落ちたりといった原因が調べにくい不具合があり、困っていました。そこで、Cppcheck というオープンソースの静的解析ツールを使ってみたところ、初期化忘れや、範囲外アクセスなどの不具合が結構見つかり、調査の助けとなりました。

Cppcheck のインストールから使うところまでのメモを残しておきます。

Cppcheck を Visual Studio で使う方法 (2016/3 現在)

  1. Cppcheck 本体のダウンロードします。
    https://sourceforge.net/projects/cppcheck/
  2. Visual Studio の Cppckeck アドインをインストールします。
    https://visualstudiogallery.msdn.microsoft.com/80bc51e4-2c27-45b6-85e2-de9b59167f5b
  3. Visual Studio を再起動します。
  4. Visual Studio のツール→check current project with cppcheck をクリックすると、cppcheck.exe のパスを指定させられるので、Cppcheck 本体のインストールパス(デフォルト D:\Program Files\Cppcheck\cppcheck.exe)を指定すると解析スタートします。
  5. Cppcheck analysis results というウィンドウに出力結果が出ます。

人為的ミスはどうしても防げないので、定期的に静的解析を行う方がいいですね。 Cppcheck にはファイル保存時に静的解析をする、というオプションがありますが、結構解析に時間がかかるので、ある程度書いたら全体をチェックする、という感じで使っていこうと思います。

Visual Studio スクローロバーのマップモード

2015/07/17

先日、友人に Visual Studio のスクロールバーのマップモードという機能を教えてもらいました。

http://blogs.msdn.com/b/chack/archive/2013/08/20/visual-studio-2013-new-editor-features.aspx

最初はなんじゃこりゃ!邪魔すぎる!と思いつつ、慣れたら便利かもしれないと思いながらしばらく使っていました。

しばらく使った今の感想ですが、結論としては場合によってはありがたい機能だと思っています。

例えば、2000行とかのソースコードを編集している時はいつも自分がどの辺を編集しているのかよくわからず、毎回検索して探したりしていたんですが、マップモードだと何となく全体像が見えるので、大体どの位置にどの関数が書かれているかを覚えてきます。 覚えてくるとすぐに編集したい箇所に飛べるので効率が上がります。 ブックマークを打てば簡単に飛べますが、ブックマークは打ち過ぎると目的の位置に飛ぶのに何回も飛ばないといけなくなってしまうので。

逆に短いソースコードのときは邪魔なだけですね。笑

私は結構長めのソースコードを1ファイルに書いてしまうことがあるので、この機能を今後もうまく活用していきたいと思います。

Visual C++ 2013 switch caseのインデントがおかしくなる

2014/12/22

Visual C++ 2013 でフォーマットすると下記のようにswitchのcaseの後ろのインデントがおかしくなる現象が起きていて、設定をいじっても変えられなくてちょっと前から悩んでいましたが、やっぱりこれVisual C++ 2013の不具合だったんですね。


switch(value_type)
{
case VALUE_TYPE_A:
{
                    printf("A");
}
    break;
case VALUE_TYPE_B:
{
                    printf("B");
}
    break;
}

https://connect.microsoft.com/VisualStudio/feedback/details/811754

こちらにあるようにアップデートしたら治りました。

ということで同じことにハマっている人がいるかもしれないので記事にしておきました。

Visual StudioのC++単体テストでメモリリークを検出するテストを書く

2014/10/02

Visual Studioの単体テストでメモリリークを検出するテストを下記のようにしたら作れたのでメモしておきます。


TEST_METHOD(Test1)
{
    _CrtMemState mem_state_before, mem_state_after, mem_state_diff;
    _CrtMemCheckpoint(&mem_state_before);

    // メモリリークをテストしたい処理

    _CrtMemCheckpoint(&mem_state_after);
    if (_CrtMemDifference(&mem_state_diff, &mem_state_before, &mem_state_after))
    {
        _CrtMemDumpStatistics(&mem_state_diff);
        Assert::Fail(L"メモリリークが検出されました");
    }
}

Visual Studio 2013 テストを実行するための実行コンテキストを設定できませんでした

2014/09/23

Visual Studio 2013の単体テストで下記のエラーが出てはまっていました。

結果 のメッセージ: テストを実行するための実行コンテキストを設定できませんでした

同じことで悩んでいる人がいるかもしれないので、原因をメモしておきます。

原因はテスト元ライブラリが依存しているdllが見つからなかったことでした。ビルド後イベントで出力パスにdllをコピーするようにしたら動くようになりました。

Visual StudioのC++単体テストでログを取る

2014/03/25

最近、Visual Studio 2013 Expressを落としてきて使っています。Visual Studioの単体テストの機能本当使いやすいです。

単体テスト中のログ出力を確認したいことあったのですが、ログを取りたい時はprintfやstd::coutの代わりにLogger::WriteMessageを使うと取れるみたいです。


TEST_CLASS(UnitTest1)
{
public:
	
	TEST_METHOD(TestMethod1)
	{
		Logger::WriteMessage("message");
	}
};

VC++ GLSLによる64bitシェーダ開発環境構築

2012/05/19 20:02

今日、VC++での64bit環境でGLSLでのシェーダ開発環境を自宅PCに整えたので、そのときの64bit版ライブラリの取得方法などについてメモを残しておきます。ちなみにOSはWindows 7 64bitです。

まず、OpenGLの64bit版を入れます。64bit版のOpenGLのlibファイルはWindows SDKのディレクトリにありました。dllファイルはSystemディレクトリのSysWOW64に入ってましたので、これらのライブラリのパスをうまく通せばOKです。

64bit版のOpenGl32.Libがあるパス例
C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Lib/x64/OpenGl32.Lib

64bit版のopengl32.dllがあるパス例
C:/Windows/SysWOW64/opengl32.dll

次は64bit版のGLUTを入れます。私は下記サイトよりダウンロードしたものを使いました。

64bit版のfreeglutのダウンロード
http://www.transmissionzero.co.uk/software/freeglut-devel/

最後にGLEWを入れます。下記サイトよりダウンロードして使いました。

64bit版のglewのダウンロード
http://glew.sourceforge.net/

あとはこれらのライブラリを読み込み、リンクするだけなのですが、OpenGLのライブラリはOpenGL32.Libの名前のままだと、うまく読み込むことができませんでした。原因はおそらく同じ名前の32bit版のopengl32.libのパスが通っていて、うまく64bit版の方のライブラリとリンクできなかったことだと思います。OpenGL32.libをOpenGL32_x64.libという名前に変えただけでうまくリンクされるようになりました。OpenGLはいろんなライブラリに付属してくるので、思わぬところで同名のライブラリが存在していたりします。ということで、うまくリンクできない場合は名前被りを疑ってみると解決する可能性があるので、一度試してみるとうまくいくかもしれません。

ちなみに下の画像は私の環境でテストしたスペキュラ入りのトーラスです。スペキュラはフラグメントシェーダの方で記述しています。

0  1  

にほんブログ村 ゲームブログ ファイアーエムブレムへ にほんブログ村 デザインブログ コンピュータグラフィックスへ

0.022 sec

Copyright(C)2006-2018 wsp All Rights Reserved