Visual Studio」タグアーカイブ

Intellisense の更新

全然完璧じゃなかった…
コレじゃ Add で同一キーが混在する場合があるやないの。

void CPairList::Add(LPCWSTR szKey, LPCWSTR szValue)
{
    vec_t::iterator it = m_vec.begin();
    vec_t::iterator itend = m_vec.end();
    for (; it != itend; it++)
    {
        if ( (*it).first == szKey)
        {
            (*it).second = szValue;
            return;
        }
    }
    m_vec.push_back(Pair(szKey, szValue));
}

でいいかな。
つーか wstring を二回も typedef する必要なんて無いわな。
キリがないので続きは多分今週末に更新する Cinema のソースで。

ところで。

Intellisense の更新は手動でやれないのかなぁ?
一度作ったクラスにメソッドを追加していくと認識されない場合が多い。

知らない人のために一応書くとコード補完機能のことである。
Ctrl+Space や先頭に :: を打つとグローバルな関数や変数を補完してくれたりとか
ドットや -> を打つと全自動でクラスメソッドを一覧表示してくれてありがたい。

コレがメソッド追加で自動反映されるまでの時間がチト長いのよ。
酷いときにはいつまでたっても反映されないということもあるんです。
古い VC++ はよく知らないけどデルヒャァ5は即時反映だったので気になるわ。

普通に手書きすればコンパイルは通るから Intellisense だけの問題だね。
コレでは Visual Studio のエディタを使っている意味はまったく無いんだが…
便利だからと頼りまくってコーディングというのもどうかと思うけど。

なんとかならんかと検索しまくったがみんなやっぱりそんな感じなのね。

どうやらソリューションのディレクトリにある .nbc がその実体らしい。
一端終了後にこのファイルを削除して再起動で作り直しリセットする。
やっぱりこの方法しかないのかな?メンドクセ。

WPF に挑戦

よし、WPF に挑戦するぞと。
そういえば .NET 3.5 ならグラス効果をマネージしているのかな?

WPF アプリケーションへのグラス フレームの拡張

アンマネージのままなのね…
でもこれ v8.0 のヘルプだからもっと探せば見つかるかなぁ?

つーか間違っているぞこのコード。
System.Drawing 名前空間は WPF から参照できないヤン!

まあそりゃ System.Drawing は GDI+ のラッパーだから当然なのだが。
WPF は DirectX を直接呼んでいるっぽいし。

まあいいや、チト書き換えて実験しよう。

using System.Runtime.InteropServices;
using System.Windows.Interop;
をお忘れ無く。

つーか System.Windows.Interop; がデフォで付かないって何故?
これが無いと WPF で作成したウインドに対し何もできんわな。

ところで VS2008 ののコピペがとってもインテリジェンスなのに感動した。
全自動でインデントを合わせてくれるじゃん、後で直す必要が無い。
C# 編集では前からなの?C++ と HTML しか使わなかったのでよく解らない。

しかし宣言ミスとかでミミズマークが付く機能はリアルタイム監視じゃないのね。
Visual Web Developer はリアルタイムで指摘してくれるので調子が狂う。

例の文字列表示の発光効果は Label のプロパティで簡単に作れる。
BitmapEffect を OuterGlowBitmapEffect にして色を選ぶだけ。
描写負荷は軽くなっているのかな?実験してみないとなんともいえない。

mainWindowSrc.CompositionTarget.BackgroundColor = Color.FromArgb(0, 0, 0, 0);

の部分がどうしても気になるんだが。
SDK の時は真っ黒を指定なんだが、これじゃ完全に透明だ。

wpf01.png

ほらやっぱり…
てか本当に完全な透明だ、動かしたらキチンと背景どおりに変わる、なんだこりゃ。
試しにアルファ指定を 255 にしたら半透過部分も普通に黒くなってしまう。
むー、WPF は今までと全然違う考え方でウインドを作る必要がありそうだ。

なんか Cinema を作って勉強したことが全部無駄になってしまいそう…

Flash 再生

VS2008 の使い勝手を調べるのに試しに Flash 再生をば。
新規でまず普通に Win32プロジェクトを適当な名前で作り stdafx.h に…

なんじゃこの targetver.h っつーのは、分離する必要があるのか?
ココを弄くるとリビルドしなきゃいけないのでややこしくなるだけだと思うが。
まあそれはよくて。

#pragma comment(lib,”Atl.lib”)
// TODO: プログラムに必要な追加ヘッダーをここで参照してください。
#include <atlbase.h>
#import <C:\\Windows\\System32\\Macromed\\Flash\\Flash9d.ocx> named_guids raw_interfaces_only

を追加、ocx の名前は私はこうなっていたけどどうなんだろう?

と書いていたトコで Ctrl+C が急にまったく使えなくなってしまい困った。
再起動しようとすると更新アイコンが、こんなにコッソリ更新すんなボケ!
VS2008 では使えなくなったかと思ったヤン、まあそれはよくて。

ソース先頭にお約束を記述
using namespace ShockwaveFlashObjects;

ShockwaveFlash オブジェクトのポインタを用意しておく。
IShockwaveFlash *pSwf;

んでもって下記のコードを追加してビルド、完成。
swf ファイルは自分で用意してパス指定してね。

atl01

だけどコレだけじゃ atl が使えないので
C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.ATL
に atl90.dll があるので生成された exe と同じフォルダに放り込む。
それだけで swf は再生可能。

atl02

コードギャーは気にしないでくだされ、手元にコレしか無かっただけです。

flv の再生は読み込んだ swf から ActionScript とかで読み込んで再生させる。
というわけで Flash 作成ツールが必要なのね、、、、、

VS2008 すげぇ

Visual Studio 2008 Professional をインストール。

スッゲェ!

何がスゲェかってインストールするのに一時間以上掛かった。

Vista の時よか長い、こんなに待たされたのも初めてだ。
更に MSDN のインストールに三十分、恐るべし。
そのインストール最中に自動更新が…勘弁してくれ。

それにまず箱の開け方が解らなかった…

まあ終わってしまえばそれはエエわな、さて試すか。
なんか起動が恐ろしく遅くなったような…

あれ?2005 は残るのね。
残す必要がイマイチ不明なんだが保険にはなる。

Cinema のソリューションを変換してビルドしてみる。

wp64

…64bit 互換の警告は無くなるんかい。
まあ互換用ヘルパー関数は使い物にならなかったので結果そうしたと考える。
警告が出ないよう一生懸命コーディングした努力が無駄になった。

上に他のウインドが被さった状態でデバッグ終了すると被さっていた領域が更新されない問題は直っている。
一番気になっていたことなのでソレだけで嬉しい。

つーか Visual Web Developer はゴロッと変わっている。
プロパティの内容が全然違う、逆にインラインスタイルはどうやるの?
PHP を強引に GUI 編集するのには「エンコード付き HTML エディタ」に変更しなきゃ駄目みたい。

WPF は…C++ からは使えないんかい!
C++ から .NET を使う人はやっぱりいなかったということなのだろうか?
まあ以前から Web 関連が無かったのだから当然かも。

とりあえず軽く試して気になったこと、細かいところは次回。

Ctrl+I

色々やってノートの Ubuntu は電源が切れるようになった。
沢山弄くったのでいったいどの方法で切れるようになったか解らない…
音はまだならない…

つーことで今日は HDD を買ってきてメインマシンに突っ込もう。
キーボードも欲しいなぁ、アレの付属キーボードを使っているけどイマイチだし。
と思っていたんだけど他の用事でなーんもできなかったわい。

つーかこんなことやっていないで開発しなきゃいかんだろ俺!
明日から当面は禁 Linux とします。

そういえば VS2008 を買わなきゃ、忘れていた。
std か pro か、うーまだ決まらないわな。

てなわけで MS のサイトを見て廻る。
げっ、こんなのがあったんかい。

MSDN Online Event – 定期コンテンツ – Visual Studio 2005 Tips

Ctrl+I でインクリメンタル検索…試したらメチャクチャ便利だ!
えぇ、知りませんでした、ずっと Ctrl+F を使っていました。
コード定義ウィンドウ…確認したいことはありませんか?って毎度じゃい!
えぇ、もちろんずっと右メニューから定義に移動をしていました。

私は今までいったい何をやってきたのでしょう。
たまには開発元のサイトは見てみるもんだ。