スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【雑談】結局 VC++2008 Express Edition に戻した

VC++2010 EE を使うメリットが全くと言っていいほどなく、
起動遅いわ、再構築も時間かかるわ、デバッガ起動するのも遅いわ
メソッドの定義に移動するにもなんかいちいち読み込むわ・・・等々
一日も使ってないのにスムーズとは言えない動きをしていらっしゃったので速攻戻しました。

VC++2010 EE でリビルドとかしちゃうと、互換性がないためか2008の方では起動すら出来ませんでした。
とりあえず古いほうから新しい方にはいつでも移行可能なので
当面は VC++2008 EE を使おうかと思います。


しかし、std::tr1::shared_ptr や、std::shared_ptr が使えないので
元に戻ったといえばそうなんですが、せっかくなのでスマートポインタって言うのを使ってみよう!
と、今更もいい所ですが重い腰を上げて boost ライブラリを導入してみました。

とりあえず boost::shared_ptr, boost::scoped_ptr を使っていこうかなって思ってます。
中身も一部スマートポインタに変更して、リークしてないかのチェックも完了したので
これで解放し忘れから逃れられる!

使い方自体はアロー演算子がオーバーロードされてるので普通のポインタと同じく使用できるので
ソースに大幅な変更はなかったのでかなり嬉しかった。
これで超なんちゃって boost ユーザーになりました。

他にも使いやすい機能が沢山提供されているようなので
追々調べながら使っていく予定ですが、当面スマートポインタのみを使用していきます。


しかし最近の暑さが半端ない・・・。
ねちゃ~っとするし、べたべたするし気持ち悪い・・・
なんとか扇風機でこの夏を凌ごう。

【雑談】VisualC++ 2010 Express Edition 色々

色々と言っても設定をいじった部分とかに関してのみ触れてあるだけなので
大層な記事ではありません。


VC++ 2008 EE と比べて個人的に遅くなったなと感じた VC++ 2010 EE。
「うわ、このコンパイラ 遅すぎ?」とはならないまでも軽快に動くに越した事はありません。

とりあえずマイクロソフトのサポートページを発見。
http://support.microsoft.com/kb/981741

Windows Automation API 3.0 がインストールされている場合Visual Studio 2010 の動作が高速になる

だそうです。
うちは XP なので「Windows XP (x86 ベース システム) 用の更新プログラム パッケージ
をインストールしてみました。

内容は、インテリセンスのパフォーマンスが低下する可能性があるので
このプログラムをインストールすると向上につながるとのことです。
Windows Automation API というのが良く解りませんが、
インテリセンスのパフォーマンスが上がるのならと思い入れときました。


もう一つ、オプションダイアログボックスについて MSDN より。
http://msdn.microsoft.com/en-us/library/655bh737.aspx


一部抜粋しますが、例によってあやふやな英語の知識を並べただけの訳なので
間違っている可能性は大いにありますw

Enable rich client experience
(リッチクライアントエクスペリエンスを有効にする)

Enables the full visual experience of Visual Studio,
including gradients and animations.
(グラデーションやアニメーションを含む Visual Stdio 全ての視覚効果を有効にします。)

Clear this option when using Remote Desktop connections or older graphics adapters,
because these features may have poor performance in those cases.
(リモートデスクトップ接続、または古いグラフィックスアダプタを使用している場合このオプションを切ります。
なぜなら、これらのパフォーマンスを低下させるケースがあるからです)

This option is available only
when you clear the Automically adjust visual experience based on client option.
(このオプションが利用出来るのは
「クライアントのパフォーマンスに基づいて視覚的効果を自動的に調整する」オプションを切った時のみです。)



だ、そうなので
VC++ 2010 EE を起動し、[ツール]→ [設定]で出てくる[オプション]ダイアログ。
[環境]→ [全般]の項目にある「視覚的効果」という項目があります。

デフォルトでは「クライアントのパフォーマンスに基づいて視覚的効果を自動的に調整する」に
チェックが入っていましたが、このチェックを外し、

「リッチクライアントの視覚的効果を有効にする」のチェックを外せばよいそうです。

その下の「可能ならハードウェアのグラフィックスアクセラレータを使用する」に関しては

Use hardware graphics acceleration
if available Uses hardware graphics acceleration
if it is available,
rather than software acceleration.
(ソフトウェアアクセラレータではなく、可能な場合はハードウェアアクセラレータを使用します)


と書いてるようなので、私はこのチェックは外してませんが
お使いのPCスペックによっては切らない方がいいかもしれません。


そしてもう一つ、VC++ 2010 EE でのユーザー定義キーワード。
VC++ 2008 EE バージョンの記事は以前書きましたが、
今回はコンパイラを変更したので VC++2010 EE バージョンに変更します。

ユーザー定義キーワードの作り方に関してはこっちの記事に任せます。
http://dvdm.blog134.fc2.com/blog-entry-31.html

user.dat を入れる場所が
C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE(VC++2010 EE)
に変わっただけです。
後はユーザー定義キーワードの色を変更するだけです。


次は予約語等のキーワードの色を変更する方法です。
これも VC++ 2008 EE と変わらずです。

[ツール]→ [設定]で出てくる[オプション]ダイアログより、
[環境]→ [フォントおよび色]にある「表示」項目に色を変えたい項目がずらーっと並んでます。

先程のユーザー定義キーワードは「C/C++ ユーザーキーワード」の項目になります。
私は、文字列や数字の色等も変更しましたのでお好きなように変更をかける事が可能です。


最後に行番号の表示です。

[ツール]→ [設定]で出てくる[オプション]ダイアログより、
[テキストエディター]→ [全ての言語]→ [全般]にある
「表示」項目にある「行番号」にチェックを入れます。

ここでは C/C++, XML 等の言語において細かく設定できるようですが
面倒だったので私は一括で行番号を使用するよう変更しました。


とりあえず使い始めてほんの少しですが、まずは見た目を変更しました。
2008 では使えなかった機能もあるのでちょっと楽しみです。

【雑談】[追記]C++ のオーバーライド

[追記は一番下]

オーバーライド。
ポリモーフィック(多態性)を実現するためには必須の機能で C++ の機能の一つとなっております。
同じメソッドでもオーバーライドされているかどうかでスーパークラスのメソッドが呼ばれたり
サブクラスのメソッドが呼ばれたりで非常に便利。

オーバーライドを実現するためにはまず virtual キーワードを使用します。

class CBase
{
public:
virtual int GetStatus()const;
};


class CSub : public CBase
{
public:
int GetStatus()const;
};


ステータスを取得するメンバメソッドだったとしましょうか・・・
こうすることで、このクラスを派生したサブクラスではオーバーライドが使用できますね。

CBase *pBase = new CSub;
Status = pBase->GetStatus();

こんな感じで CSub の GetStatus メソッドを呼べる訳ですが、
呼び方をどうするかと言う話ではなくて、オーバーライドの書き方をどうするか?が今回の記事です。

CSub クラスのメンバメソッド int GetStatus()const; ですが、
特に何も記述しなくてもオーバーライドは実現可能です。

ただパッと見、このメンバメソッドはオーバーライドされいる事が解りにくいです。
そこで、こんな記述も可能です。

virtual int GetStatus()const;

CBase クラスと、CSub クラスで同じ書き方です。
前まではこの書き方を採用してました。
なんというかしゃーなしでこれをオーバーライドされてるって言う意味で見ようって事ですね。

しかし、メソッド名を間違えていたり、引数リストが間違っていたとしても問題はなく
ただそういうメソッドがあるんだなくらいにしか取ってくれないので
実際メソッドを呼んだ時に「あれ、挙動が違う」と判断出来ますが、
やっぱり見た目の問題もあって解りにくいです。

個人的に virtual を付ける意味は「派生する可能性がある」場合に付けるべきだと思っています。
なのでこの書き方が凄い嫌いでした。

CSub クラスをパッと見ると
少なくとも自分は派生する可能性のあるクラスなのかなと思ってしまいます。
結局これもスーパークラスから派生されてるのかも解りにくいですがそういうもんだと割り切るしかありませんでした。


そこで C++11 で新しく使えるようになった機能の一つに override というものがあったりします。

int GetStatus()const override;

後ろに override と付けるだけで、あぁオーバーライドされてるなって解りやすいと思います。
(付けるのは CSub クラスのメソッドです)

もしオーバーライドを想定していなかったクラスに対して override を付けてしまうと
コンパイラがエラーを出してくれるので便利です。

error C3668: 'CSub::GetStatus' : オーバーライド指定子 'override' を伴うメソッドは、
基本クラス メソッドをオーバーライドしませんでした


メソッドの名前や引数リストが間違っていてもコンパイルの時点で教えてくれます。
超便利!!


私が使っているコンパイラ VC++ 2008 Express Edition はどうやら使えるようです。
気になる機能が色々登場している C++11。

派生、オーバーロードを禁止する final を使うとコンパイルエラーが出てしまうようで
対応していないのか、書き方が悪いのか解りません。
C++11 に完全に対応したコンパイラが今後出てくるんでしょうか・・・。


VC++2010 では使えるんでしょうかね・・・。
まぁ使えますと言っても C++03 では使用できないと思うので使うかどうかは微妙なところですが
こういう解りやすい書き方は使っていきたいですね。

せっかくなので重たいと言われている VC++2010 をインストールしてきますか~
もし記述出来たら追記にでも書きます。



[--- 追記 ---]
VC++ 2010 Express Edition をインストールしてきました。

2008 では int GetStatus()const override; この記述はOKでしたが
2010 ではエラーが出ます。

error C2217: 'override' には 'virtual' が必要です

virtual キーワードの使用を求められるようです。
なので、 virtual int GetStatus()const override; が正しい書き方になるようです。
エラーが出るならしょうがないですね・・・。
こっちに書き方を合わせようと思います。


C++11 の新機能はこんなコンパイラで使えますっていう表を発見。
ありがたい。

http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx

ふむふむ・・・
使えるコンパイラも有るようで、VC 2008に関してはアウツと言う事ですね。
残念ではありますが、使えないよりも、VC11 とか出てたんや!って方が驚きが強かったですww
VC++ 2011 EE はまだないようなのでリリースされる日を楽しみに待つ事にします。

製品版はあるそうなのでそっちを買えば使えるようですね。
ま、買いませんけどね!

せっかく VC++ 2010 EE をインストールしたので
VC++ 2008 EE では互換性がないとか言われてインストールできなかったSP1。
VC++ 2010 EE では、std::shared_ptr が使えつようになっているので
試しに使ってみたいなと思います。


今は四分木の空間分割を扱うためにクラスを構築している段階です。
やるだけやってパフォーマンス変わるか実験したいです。

【雑談】あぁやべぇなんもやってねぇ

えぇ、タイトル通りです。
あれからなんんんん・・・・・・・・・にもっ!!やっておりません!!
ほんとにやばいです。
このままではお盆にちょっと遊べる形のとか思ってたのに全然出来る気配がない・・・('A`)
いかん、いかんですぞ。

http://nicoshop.nicovideo.jp/G090000000034/
あ、これ注文したんです。
めっちゃ可愛いやん?

いかん、いかんですぞ。
7月26日は二本同時にゲーム発売日。
勿論予約しに行きました。

いかん、いかんですぞ。
コンパイラの起動や、フォトショの起動、ペンタブを握ったりすらもしてません。

二連休でいいから下さい!!!!!!!!
一休だけでは睡眠でなくなります!!

なんとか、なんとかせねば・・・

【雑談】体調不良中でダウンしてました('A`)

高熱と腹痛で3日程ダウンしてました。
熱自体は一日半でひいたのですが、お腹の調子がすぐれず何かを食べるとすぐトイレって感じでした。
最近ノロウイルスが流行っているそうですが真偽は定かじゃかありません。

お腹の調子もだいぶ良くなり、今ではほぼ治ってると言っていいと思います。
風を引いてもお腹を壊すって事は今までになかったのでとてもきつかったです。


折角作業やろう!って気合いい入ってたらコレだったので今回も更新できる事がございません…。
何もないってのもアレなんでドローソフトで気になってるものでも紹介しようかなとおもいました。


それがこちら。
http://www.clipstudio.net/?uiaid=pv12053102

CLIP STUDIO PAINT PRO と言うソフトなのですがとてもすごそうです。
動画を見た感じラスターを扱っているような感覚で描けるベクターと言えばいいのでしょうか・・・。
実際使ったことないので今度体験版でも DL しようと思ってます。
使い心地が良ければ来月にパッケージ版が出るそうなので買ってもいいかもしれないと思いました。

http://www.clipstudio.net/paint/function
こちらにどんな事が出来るかとかが描いてあるんですけど良さそうな気はします。
他のソフトにはなさそうな便利な機能が付いているというのは非常にいいなと感じます。
安価なソフトで SAI もいいですけど 1万円くらいなら十分な威力を発揮しそうではあります。

もし動画の通り快適に動作するのであれば着色作業を PhotoShop から以降も考えてもいいかも・・・。
まぁ、値段的には相当な差はある訳ですけど、やっぱり警戒に動くに越した事はないですし。
何はともあれ使ってみない事には製品云々もいかないので体験版で使ってみたいと思います。

しっかり体調治して早く作業しなければいけません。
来月、7月26日に那由多の軌跡、スーパーダンガンロンパ2の発売が控えてるので
来月は末からはゲーム期間に入ります♪

超楽しみ><
≪PREVNEXT≫
検索フォーム
プロフィール

DVDM

Author:DVDM
自作ゲームの開発過程ブログ。
赤髪愛なら誰にも負けない。

 
Pixiv バナー


ブロとも申請フォーム
最新記事
カテゴリ
最新コメント
最新トラックバック
RSSリンクの表示
リンク
ブロとも一覧
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。