My Daily Programming Life...

Showing posts with label Visual Studio. Show all posts
Showing posts with label Visual Studio. Show all posts

Visual Studioとcfix

Visual Studio 2010でCfixを使おうと思ってチュートリアルに従ってやろうとして、いくつか引っかかったので解決法を。

チュートリアルには、プロジェクトの作成については一切ふれられていないけど、テストを書く前の段階でテスト用のプロジェクトを作る必要がある。そして、それはDLL作成用のプロジェクトにすればよい。

まず、cfixのチュートリアルに"output window"という言葉が出てきて、そこにテスト結果のログなどが表示されるとあるけれど、この"output window"は"出力ウィンドウ"のことではなくて、コンソールウィンドウのことらしい。

cfixのチュートリアルで、最後にCtrl+F5で実行すればコンソールウィンドウに結果がでてそれが確認できるとあるけれど、普通にプロジェクト作ってやるとコンソールウィンドウが終了後すぐに閉じてしまって確認できない。
Ctrl+F5はVisual Studioの「デバッガなしで開始」に相当するけど、プロジェクトの設定の「リンカ」-「システム」-「サブシステム」が"Windows"になっているとすぐに閉じてしまう。これを"Console"に変えた上で、Ctrl-F5で実行すると、実行終了後にコンソールウィンドウが閉じずにキー入力を待つようになる。



追記:
cfixのヘルプをさらに読み込むと、Visual Studioの出力ウィンドウに結果を出している。でも、できない。どうやるんだろうか。コマンドラインで出力先を変えられる見たいに書いてあるけど、そんなオプション見つからない・・・

さらに追記:
最近のバージョンでは、それらのオプションはなくなったらしい。そして・・・どちらかというとその姉妹ソフトのVisualAssertを使えってことらしい。

ラムダ関数

Visual Studio 2010の新機能にラムダ関数のサポートがあるらしい
http://msdn.microsoft.com/ja-jp/library/dd293608.aspx

個人的にあんまりラムダ関数に慣れ親しんでいないせいか、C++で書いてて、こういう風に書こうという発想にならないような気がする。

ただ、ラムダ関数自体はRubyとかでプログラム書いていると便利なのは確か。このドキュメントにあるように、C++で同じことやるには関数オブジェクトとかになるけど、わざわざクラス定義が必要になる。

でも、C++ではちょっと使うのが気が引ける。他人が読めなくなるだろう、きっと。

ViEmuでCtrl+CやCtrl+Vを有効にする

Visual StudioでViと同様のキー操作を可能にするためのツールにViEmuがある。これを使うとほとんどViと同様の操作でテキスト編集ができるため、Viを普段使っている人にはとっても便利。

ただし、デフォルトだとCtrl+CやCtrl+VはViのキーバインドではなく、標準のコピー、ペーストになっている。
Ctrl+Cやコマンドキャンセル、Ctrl+Vはブロック選択なので、使いたい人は使いたいだろう。

実は、これらを有効に(つまりViと同様のキーに)するのは簡単。

Visual Studioのメニュー
「ツール」→「オプション」と選択し、ダイアログで
「ViEmu - General」のタブを開く。「Keyboard...」を選択し以下の画面へ。





重要なのは右下の「Key scanned, with Ctrl...」とあるテキストボックス。
ViEmuはここにある文字とCtrlの組み合わせが、VisualStudioとViとぶつかるかどうかをスキャンする。

たとえば、このテキストボックスに「C」とある場合、ViEmuは「Ctrl+C」がVisualStudioとViとで衝突が起きるかどうかを検出する。逆にこのテキストボックスに「C」がなければViEmuはそれについては何もしない。つまりVisual Studio標準のままにする。

デフォルトでは、このテキストボックス内にはVとCは含まれない。つまり、そのまま放置しているということだ。

というわけで、この中にCとVの文字を上の画像のように入れる。そして「Apply」キーを押す。

ただし、これだけではViEmuはまだこのキーバインドを入れ替えない。
このダイアログボックスの右上のリストには、衝突が検出されたもののリストがある。

これを置き換えたい(つまり、Viのキーバインドにしたい)場合には、その下にある「Save and Remove」を押す。

これで、完了。


このダイアログのなかのリストとボタンの関係は、若干直観的ではない。理解するまでにちょっと時間がかいかる。
とりあえず、Ctrl+VやCtrl+Cを有効に(Viと同じに)したければ上のことだけやればよい

TortoiseSVNの無視設定@VS

Visual StudioプロジェクトをSVN管理していてTortoiseSVNを使っていたら以下の無視設定をしておくといいと思う

*.ncb *.suo *.user

やり方は適当にフォルダ右クリックして、TortoiseSVN->SettingsのGeneralタブでできる。

svn:ignoreプロパティなんてのもあるけど、全体に適用してしまっていいようなときはこっちの方が便利
feedSubscribe to my feed