Visual Studio 2012 Expressが公開されました

以前から、Visual Studio 2012 Express for Windows 8は公開されていましたが、ようやく

Visual Studio 2012 Express for Windows Desktopも公開されいました。

 

Visual Studio 2012 Expressのダウンロード先はこちら↓

http://www.microsoft.com/visualstudio/jpn/downloads

 

for Windows 8は、いわゆるメトロアプリの作成用で、for Windows Desktopは従来のフォームアプリケーションの作成用で、Visual Basic 、C#、C++が含まれています。

 

今回のバージョンアップで、ざっと見た感じで、ちょっとうれしかったのは

 

  • x64のプラットフォームが作れる。
  • ソリューションが作れる。
  • C++/CLIのインテリセンスが復活している。

 

ぐらいでしょうか?

 

また、このページ↓

http://www.microsoft.com/visualstudio/jpn/products/visual-studio-express-for-windows-desktop#product-express-desktop-details

 

を見ても分かるように、サポートされているオペレーティングシステムには、XPVistaが含まれていないので、注意して下さい。

 

ただ、Visual C++のCLRに「Windowsフォームアプリケーション」の項目が無くなりました。

フォームアプリケーションを作る場合は「空のCLRプロジェクト」から作る事は可能です。

 

しかし、少し面倒なので、以前のバージョンで、Windowsフォームアプリケーションのプロジェクトを作ってからVS2012へバージョンアップさせた方が簡単かもしれません。

 

まぁ、C++/CLIでフォームアプリケーションを作るな!って事ですね。

 

Expressでなくて、通常版はこちら↓

 

Visual Studioへ戻る

標準的な環境変数Path

最近Windows7を再インストールするハメになり、まっさらなWindows7(64bit)とVisual Studio 2005をインストールしたのですが、たまに変なソフトをインストールすると環境変数を上書きしてしまう物もあるので、せっかくなので、忘れないためにも現状の環境変数Pathをメモ。

 

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\

 

また、ソフトによっては環境変数の先頭部分に環境変数を追加するアプリのインストーラもあり、VisualStudioのコンパイル時に

 

プロジェクト : error PRJ0003 : ‘cmd.exe’ の起動中にエラーが発生しました

 

というようなエラーメッセージが出る場合もあります。

 

この場合は最初の3つ

 

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;

 

が先頭になるように編集すること。(メモ)

 

【Visual Studio】作成中のユーザーコントロールをツールボックスに表示する方法

作成中のユーザーコントロールのアイコンがツールボックスに表示されない場合あります。(Visual Studioのバージョンにより異なる?)

 

ツールボックスへ表示させるには、Visual Studioのメニューからツールオプションを選択し、ウィンドウを表示します。

 

 

次にオプション設定ウィンドウのWindowsフォームデザイナ全般を選択し、ツールボックスAutoToolboxPopulateFlaseからTrueへ変更します。

 

これでツールボックスに作成中のユーザーコントロールが表示されます。

 

Visual Studioへ戻る

 

【Visual Studio】Express Editionでユーザーコントロールを作成する方法

Visual StudioのExpress Editionでは、プロジェクトの作成でユーザーコントロールの項目が表示されないので、ユーザーコントロールは作成できないのか?と思いがちですが、VB.NETとC#ではExpress Editionでもユーザーコントロールを作成する事が可能です。ただし、C++/CLIは非対応。

 

作成方法は、まず、新しいプロジェクトクラスライブラリを選択し、プロジェクトを作成します。

 

 

次にソリューションエクスプローラプロジェクト名右クリックし、追加ユーザーコントロールユーザーコントロールを選択します。

 

 

新しい項目の追加でユーザーコントロールを選択し、ユーザーコントロールを追加します。

 

 

これで、最初に作成したクラスライブラリのプロジェクトにユーザーコントロールが追加されます。

また、最初に作成されたクラスライブラリのファイル(下図の例ではClass1.cs)は削除して構いません。

 

 

Visual Studioへ戻る

 

【Visual Studio】既存ユーザーコントロールの使用方法

既存のユーザーコントロールを使用する方法は、Visual Studioのツールボックス上でマウスの右ボタンをクリックし、表示されたメニューのアイテムの選択をクリックします。
(クリック後、時間がかかる場合があります。)

 

表示されたメニューの.NET Frameworkコンポーネントに使用したいコントロールが表示されたいたら、そのコントロールにチェックを入れます。

 

使用したいコントロールが表示されていなかったら、右下の参照ボタンをクリックし、使用するユーザーコントロールのファイル(*.dll)を選択します。

 

 

すると、ツールボックス上に追加したユーザーコントロールが表示され、使用する事が可能となります。

 

 

Visual Studioへ戻る

 

【VisualStudio】ウォッチでポインタの中身(値)を参照する

デバッグ実行時に下図のようなプログラムの場合、

 

 

ポインタの変数(pBuf)をウォッチウィンドウで見てみると、ポインタのアドレスと先頭の
値しか見る事ができません。↓

 

 

そこで、ウォッチの名前の部分に、ポインタ変数名に ,(カンマ)と表示する個数を追加します。
上記の例では

 

pBuf, 256

 

とします。
すると、ポインタの中身が配列と同じように参照する事が可能となります。↓

 

 

Visual Studioへ戻る

 

【VisualStudio】重なったコントロールの選択

分かりづらいかもしれませんが、下図のように、フォームにsplitContainerを配置し、親(フォーム)にドッキングした後、PanelPictureBoxをドッキングした場合など、マウス操作でsplitContainerを選択するのは意外と難しかったりもします。

 

 

そんな時には、選択したいコントロール上で、マウスの右ボタンをクリックします。

 

 

すると、右クリックしたポインタの位置に重なっているコントロールの一覧がメニューで表示されるので、メニューからコントロールを選択すると、簡単に重なったコントロールを選択する事が出来ます。

 

Visual Studioへ戻る

 

【VisualStudio】任意キーワード(Int32など)に色を付ける

VisualStudioを使っていると、int doubleの文字は青く表示されますが、これを.NETっぽくInt32Doubleなどと書くと、色が付いてくれないので、ちょっと見づらくなります。

 

しかし、これらの任意の文字列に色を付けて表示する方法があります。

 

その方法は、

  1. 色を付けたいキーワードを1行に1つずつテキストエディタで書き、これを「usertype.dat」というファイル名で保存する。
  2. 保存したファイル(usertype.dat)を「devenv.exe」というファイルのあるフォルダに保存する。
    Visual C++ 2005 Express Editionでの私の環境では
    C:\Program Files\Microsoft Visual Studio 8\Common7\IDE
    のフォルダに保存します。
  3. VisauStudioを起動する。

 

(情報元)
http://msdn.microsoft.com/ja-jp/library/aa301710(VS.71).aspx

 

すると、こんな感じになります。

 

【キーワード設定前】

 

【キーワード設定後】

 

これで少しは見やすくなる?と思います。
参考までに私のusertype.datのテキストを以下に示します。
各自、使いやすいように編集してみて下さい。

 

System

Array
Boolean
Byte
Char
DateTime
Double
Enum
EventArgs
Int16
Int32
Int64
IntPtr
Math
Random
SByte
Single
String
UInt16
UInt32
UInt64

Collections
ComponentModel
Container
Data
Drawing
EventArgs
EventHandler
Object

Bitmap
Brush
Brushes
Color
Font
Graphics
Image
Pen
Pens
Point
PointF
Rectangle
RectangleF
SolidBrush
Size
SizeF

Drawing2D
DashStyle
FillMode
LineCap

Imaging

BitmapData

Diagnostics
Stopwatch

IO

BinaryReader
BinaryWriter
FileStream
StreamReader
StreamWriter
StringReader
StringWriter

Windows

Forms

Application
Button
CheckBox
ComboBox
CommonDialog
Control
Cursor
DataGrid
DataGridView
FileDialog
FontDialog
Form
GroupBox
HScrollBar
ImageList
KeyEventArgs
Label
ListBox
ListView
MainMenu
Menu
MenuStrip
MessageBox
MonthCalender
OpenFileDialog
Padding
Panel
PictureBox
RadioButton
RichText
SaveFileDialog
Screen
ScrollBar
Splitter
SatusBar
SatusStrip
TabControl
TextBox
ToolBar
ToolBarButton
ToolStrip
ToolStripButton
ToolStripComboBox
ToolStripLabel
ToolStripMenuItem
ToolStripSeparator
ToolStripStatusLabel
TreeNode
TreeView
VScrollBar

NULL

IplImage

Ipp8u
Ipp16u

IppStatus
IppiSize
IppiRect

 

Visual Studioへ戻る

 

【VisualStudio】『元の位置へ移動』はどこへ行った?

VisualStudio6.0を使っている頃には右ボタン→元の位置へ移動のメニューをよく使っていた
のですが、これがVisualStudio2005には無い!!!

 

よくよく探してみると、ツールバーののボタンか、メニューの表示→戻るで元の位置へ移動する
ことができる。

 

でも、結局は表示→戻るのショートカットキーに設定されている、Ctrl + 負符号(-)を使って
元の位置へ移動するので、落ち着いています。

 

他にもショートカットキーはいろいろ用意されているみたいです。
詳細はこちら↓を見ると参考になると思います。
http://msdn.microsoft.com/ja-jp/vstudio/dd183141.aspx


 

と思ったのですが、最近、このキーボードとマウスのセット

 

 

を購入したのですが、5つボタンの設定で、左右のボタンにデフォルトの設定でブラウザの進む、戻るが割り振られていて、このボタンがVisual Studioにおいても進む/戻るに対応していたので、5つボタンマウスを持っている人はこっちの方が簡単だと思います。

 

このマウス、ちょっと大きいのですが、左手でマウスを使う私にとっても、握りやすい形で、会社と自宅の両方で使っているぐらい、最近のちょっとお気に入りです。

 

昔は、キーボードやマウスと言えば、レスポンスの良いPS/2の有線接続、キーボードはキータッチの気持ちいメカスイッチじゃないとヤダ!

とか思っていたのですが、レスポンスは悪くないし、無線なので、机のまわりがスッキリするし、キーボードも、キーストロークの短いキーボードは、慣れてくると速くキー入力ができるような気がします。

 

Visual Studioへ戻る

 

【VisualStudio】ブレークポイントが無効になる場合

ブレークポイントを設定しデバッグ実行を行っても、ブレークポイントが赤丸から白丸になり、
三角のビックリマークが付いて、ブレークポイントが無効になり、指定したブレークポイントでも
その場所で止まってくれない場合があります。

 

 

そんな時にはメニューのツール→オプション→デバッグ→全般を選択し、

 

元のバージョンと完全に一致するソースファイルを必要とする

 

に付いているチェックマークを外すと、ブレークポイントが有効になります。

 

 

上図はVisual Studio C++ Service Pack 1の場合です。
SP1があたっていない場合?ではデフォルトではデバッグが表示されていない場合があるようです。

 

 

この場合、左下のすべての設定を表示にチェックを入れると↓

 

 

デバッグが表示されるので、元のバージョンと完全に一致するソース ファイルを必要とするのチェックを外します。

 

この現象は古いVisualStudio(Ver6.0など)で作成したソースコードを新しいVisualStudio
(2005など)でデバッグ実行を行った場合などに起こる場合があるようです。

 

もし、この『元のバージョンと・・・』のチェックマークを外してもブレークポイントが無効になって
しまう場合は、デバッグしようとしているプロジェクトがユーザコントロールやライブラリで、
他の実行ファイル(*.exe)から参照して実行した場合に起こったりもします。
その場合は、

●デバッグ実行した時(コンパイル時)にエラーは無かったか?
●実行ファイルの参照設定は正しく行われているか?(ReleaseとDebugとの違いにも注意)

 

を確認してみて下さい。

 

Visual Studioの記事一覧へ戻る

Visual Studioのツールボックスのアイコン表示がおかしくなった場合

Visual Studioを使っていると、なぜか途中でツールバーのアイコンがこんな感じ↓

 

 

でおかしくなる場合があります。
でも、ちゃんと復帰方法もあります。

 

復帰方法

ツールボックスのウィンドウ上で右ボタン

「ツールボックスのリセット」

復帰完了!

 

 

Visual Studioへ戻る

 

フリーで使えるVisual Studio Expressの入手

2012年10月現在、最新版はVisual Studio 2012となりました。

VS2012 Expressについては、下記、記事にまとめました。

Visual Studio 2012 Expressが公開されました

 

以下は、旧版の内容です。

———————————————————

VB.NET、C#、C++/CLIをこれから始めようとしている方は、まずは無料で使えるVisual Studio Expressを試すのがオススメです。
このVisual Studio Expressは、プログラム初心者や学生向けという位置づけですが、そこそこの事ができます。

 

入手先はこちら

 

http://www.microsoft.com/japan/msdn/vstudio/express/

 

旧版のVisual Studio 2008 Express Editionもこちらから入手可能です。

 

http://www.microsoft.com/japan/msdn/vstudio/2008/product/express/

 

Visual Studio 2010のC++/CLIではIntellisense(携帯で言うところの予測入力みたいなもの)が使えないので、C++/CLIをやりたい場合は、VS2008の方がいいと思います。

 

 

このExpressでは何ができないか?というと、細かい事はVisual Studio 2005の場合ですが、

 

@IT
http://www.atmarkit.co.jp/fdotnet/special/vs2005compare/vs2005compare_01.html

 

に任せるとして、私がExpressで不便に感じたのは

 

  • C++/CLIのExpressにはリソースエディタが無い
    →バージョン管理ができない、SDKのウィンドウが作れない。
  • ユーザーコントロールが作れない
  • マクロ機能が無い
  • ソリューションが多言語をまたげない
    →VB.NETやC#の混在が出来ない。

 

などなど。

 

と、言いながらもちょっとしたアプリケーションを作るだけなら、かなりの事が出来るので、まずはこのExpressから初めてみては如何でしょうか?

 

Visual Studioへ戻る

ライブラリの使用方法、VisualStudioの設定方法

最近、OpenCVOpenGLDirectShowなどのライブラリを使う機会が増えてきたので、ライブラリの使い方をまとめておきます。

 

ライブラリと一言いっても、スタティックライブラリダイナミックライブラリ.NETのクラスライブラリなどとあるのですが、比較的一般的?なダイナミックライブラリの使用方法を紹介します。

 

ダイナミックライブラリを使用するには、下記の3点セットが必要となります。

 

  • ダイナミックリンクライブラリファイル(*.dll)
  • ライブラリファイル(*.lib)
  • ヘッダファイル(インクルードファイル)(*.h)

 

各ライブラリで何のファイルが必要かは調べて置いて下さい。
*.dllファイルはプログラムの実行時、*.lib、*.hファイルはプログラミング中に必要となります。
また、ライブラリのバージョン、Release用/Debug用とでファイルが異なる場合もあります。

 

ライブラリを使用するための設定方法もいくつかあるので、私の思う一般的な方法は以下の通りです。


 

ダイナミックライブラリファイル(*.dll)の参照設定方法(環境変数Pathの設定)

 

ライブラリをインストールし、*.dllファイルがインストールされたパスを環境変数のPathに設定します。
※このPathの設定はライブラリのインストーラにより自動的に設定される場合もあります。

 

設定方法は、スタートメニューから、コンピュータを右クリックし、プロパティを選択します。

 

 

次に表示されたウィンドウのシステムの詳細設定をクリック

 

 

詳細設定のタブを選択し、右下の環境変数のボタンをクリック

 

 

すると下図のように××のユーザー環境変数システム環境変数と2種類表示され、両方ともにPathの項目があるのですが、××のユーザー環境変数のPathを設定するとWindowsにログインしたときのユーザーのみでPathの設定が有効となり、システム環境変数のPathを設定すると全ユーザーでPathの設定が有効となります。
私は『ログインしたユーザーを変えるとプログラムが起動しないんだけど?!』とか言われたく無いので、システム環境変数のPathを設定 するようにしています。
そして、Pathの項目を選択し、編集ボタンをクリックします。

 

 

そして、編集値の欄に*.dllファイルがインストールされているパス(フォルダ名のフルパス)をセミコロン(;)に続けて記載します。

 

(例)
;C:\Program Files\OpenCV\bin

 


 

また、この*.dllファイルのパスは必ずしも設定する必要はなく、プログラム(*.exe)のある同一フォルダやC:\Windows\System32フォルダ内に*.dllファイルを入れておくだけでも大丈夫なのですが、プログラムから*.dllファイルを参照するときの優先順位は下記のようになっています。

 

  1. アプリケーション(*.exe)と同じフォルダ
  2. カレントディレクトリ
  3. システムディレクトリ(C:\Windows\System32 など)
  4. 16Bitシステムディレクトリ(C:\Windows\System など)
  5. Windowsディレクトリ(C:\Windows など)
  6. PATH環境変数に列挙されているディレクトリ


 

ライブラリファイル(*.lib)の参照設定方法

各ライブラリにおいて、どの*.libファイルが必要なのかは調べておき、それぞれのファイルの参照設定を行います。

 

まずは、*.libファイルが入っているパスの参照設定を行います。
メニューのプロジェクト(プロジェクト名)のプロパティをクリックします。

 

 

開いたウィンドウの構成のプロパティ→リンカ→全般を選択し、追加のライブラリディレクトリにそのまま、*.libファイルのあるパスを設定するか、右側にある・・・のボタンをクリックします。

 

 

すると追加のライブラリディレクトリのウィンドウが表示されるので、・・・のボタンをクリックし、フォルダのボタンをクリックして*.libファイルのあるフォルダを指定します。

 

 

ライブラリによっては、参照する順番を指定しなければならない物もあるので、その場合は右上にある ↓ ↑ ボタンで順番を入れ替えます。

 

次に実際に使用する*.libファイルを設定します。
構成のプロパティ→リンカ→入力の追加の依存ファイルの部分に*.libファイルを入力します。
必要な*.libファイルがある場合は、空白(スペース)で区切って入力します。

 

 

他にもプログラム中で*.libファイルを直接していする事もできます。

 

例)
#pragma comment(lib,”C:\\Program Files\\OpenCV\\lib\\cv.lib”)

 


インクルードファイル(*.h)の参照設定方法

インクルードファイル(ヘッダファイル)(*.h)のあるパスを設定します。
設定方法は
メニューのプロジェクト→(プロジェクト名)のプロパティを クリックします。

 

構成プロパティ→C/C++→全般の追加のインクルードディレクトリの欄の右側にある・・・ボタンをクリックします。

 

 

ヘッダファイルのパスを追加設定するには右上のフォルダのアイコンをクリックします。

 

 

ボタンをクリックすると、・・・のボタンをクリックすると、ディレクトリの選択のウィンドウが表示されるので、*.hファイルが入っているパスを設定します。

 

 

そして、プログラム中では

 

#include <cv.h>

 

のように設定します。

 

C++/CLIからライブラリを使用する場合

 

.NETで作られたライブラリでは無いライブラリを使う場合は、メニューのプロジェクト→(プロジェクト名)のプロパティを クリック、構成プロパティ→全般の共通言語ランタイムサポートの欄を

 

純粋MSIL共通言語ランタイムサポート(/clr:pure)
から
共通言語ランタイムサポート(/clr)
に変更します。

 

 

その他

*.libファイル、*.hファイルの設定にはDebug用とRelease用の設定がそれぞれありますので、両方設定して下さい。
DebugとReleaseとで設定するファイル名が異なる場合もあるのでご注意下さい。

 

 

また、メニューのツール→オプションで表示されたウィンドウのプロジェクトおよびソリューション→VC++ディレクトリで、インクルードファイル(*.h)、ライブラリファイル(*.lib)の参照ディレクトリの設定が可能です。(VS2010は非推奨)
逆に言うと、ここに設定されているフォルダにインクルードファイル(*.h)やライブラリファイル(*.lib)を置いても参照する事が可能です。(個人的にはあまりやりませんが...)

 

 

トラブルシューティング

  • LINK : fatal error LNK1104: ファイル ‘×××.lib’ を開くことができません。
    fatal error C1083: include ファイルを開けません。’cv.h’: No such file or directory
    *.libファイル、*.hファイルが指定したフォルダに存在しているか?
    また、*.libファイル、*.hのファイル名が正しいか?
    確認してみて下さい。
  • fatal error C1189: #error :  ERROR: EMM intrinsics not supported in the pure mode!
    共通言語ランタイムサポートの設定/clr:pureから/clrに変更して下さい。

 

Visual Studioへ戻る