投稿者「sasakima-nao」のアーカイブ

.NETのソース

Visual Studio 2008で見る.NET Frameworkのソースコード ? @IT

.NET Framework って C# で作っているのか、へぇ?。
なんて勘違いしそうだ、あくまでクラスライブラリだけだよね。

まあ仮装マシン自体のソースなんか見たって何の参考にもならないが。

デルヒャァの Pro 版以上には VCL のソースが含まれている。
コレは本当に役に立った、つーか沢山パクらせてもらった。
検索で見つかるコードよりはるかに正確で簡潔なコードがそこにあった。
Palepoli の文字列変換なんてソレを見なければまず作れなかった。

と言っても組み込み関数の場合がほとんどである。
組み込み関数をちょこっとだけ拡張したくなることが結構あるのよ。
フォームやコントロールのソースコードは別に参考にならなかった。

一番参考になったのは FileCtrl.pas である。
ファイル操作はどう行えばよいのかたっぷり真似した。
もしくは一部の関数だけ抜き出してサイズ削減とかしたり…

C# では変換等は関数でなくメソッドで行うわけで。
はたしてソースを見たところで参考になるかどうか疑問いっぱい。
とはいえまだ C# は勉強中の段階だからなんともいえないが。

とりあえずヤルかもしれないので覚え書きと。

しかし丸ごとダウンロードの方法なんかこんな所に書いていいのか?
某雑誌臭くて…ってそういえば同じ会社だったわココ。

ところで昨日買った本って WPF 開発者著本の翻訳なんだね。
だから全体像を上手くまとめているなぁと感じたわけだ。
まだ序章しか読んでいないがなんか感銘したよ。
リファレンスではなく「概念」と言い切っているのが開発者らしくて好き。

TextOut

さて、鼻風邪も退治したし WPF の勉強再開。
コントロールを貼り付けて遊ぶのもいいけどまず基本を。

TextOut API や DrawString みたいな文字表示はどうやるの?
Label コントロールでグローを掛けるのもいいけど基本は大事だ。

手持ちのこの本に書いていた。

β 時代に書かれたムックだからオススメというわけではないですけど
Vista の特性を生かしたプログラムを書きたいなら最強のムックです。

しかしコレを読めば Vista という OS とは何なのかが理解できる。
XP までの Windows と Vista とはいったい何が違うのかすべて書いてある。
Grass 効果ばかりが Vista ではないのだよ、良くなった部分は沢山ある。
XP の正常進化だと思って使うと完全に裏切られるけどさ。

だからこういう本をもっと出せよクソフトバンク!
こういう有用な記事が書けるライターを沢山抱えている会社だというのに
能なしライターだけで賄える○トランなんか復刊してんじゃねーよボケ。

まあ実際に Vista を使う最大の理由は間違いなく .NET だね。
WinFX は失敗ではなかった、でも一般に理解されるのはまだ先だろう。
コレを最大限に生かしたアプリが出そろうまでまだ時間が掛かる。

脱線はこれくらいにして。
Grid 要素直下に TextBrock を入れるだけで文字は表示できるらしい。

<TextBlock FontSize=”36pt”>はろぉWPF</TextBlock>

おぉ!デザインビューもシンクロして文字が表示されるヤン!
早速ビルドして実行。

h_wpf

おぉこんなに簡単に…ってあれ?
こういうのって WM_PAINT イベントハンドラに記述しなくてもいいの?
Label のようにリソースではないし…サーフェスとして保持なのかな?

WM_PAINT を気にしなくてイイようになったのならトンデモナイ進化だ。
うー今までの考え方が全然通用しないぞコノヤロウ!

今はまだこんなレベル…

新ANSI C言語辞典

昨日まで強烈な鼻風邪で死んでいました。
つーことでプログラミングはしていない、のでネタは無い。
六万円の元をとらなきゃいけないというのに…

Microsoft、学生に開発ツールを無償提供 – ITmedia エンタープライズ

大学生の皆さんには大バーゲンだなぁ。
多分専門学生に ASP.NET の教育をさせるもくろみなんでしょうね。
でもソッチ方面はもはやスタンダードになった LAMP を勉強したほうが得かと…

そんな手には乗らないぞ!と C/C++ ネイティブを作るのも又一行。
しかし大半の人は挫折するのが目に見えているわけで…
これから初めても専門用語を覚えた頃には社会人かも…

という方々の為に一冊紹介

この本はプログラミング系サイトでよく見かけると思います。
実は自分はプログラミングを始めた頃になんとなく買ったわけですが、
あまりの濃い内容に圧倒されしばらく眠っていました。

それからしばらくして Pascal から C++ へと環境移行した。
その時改めてパラパラとめくって衝撃を受けてしまった。
知りたかった事が一つ残らず書いてある、その先まで書いてある!
ライブラリ関数の実装例までが見事に書いてある、恐るべし。

それからしばらくの間単行本がわりに持ち歩いていたくらいです。

何より嬉しいのは 18.8 x 12.8 x 3 cm という小さなサイズ。
そしてほとんどが文字だけという徹底的に解説を詰め込んだ内容。
これなら鞄に難なく入る。

いつも思うのだがプログラミングの本は何故絵本みたいなのばっかなの?
画像なんかいらないし老眼を前提としか思えない文字のサイズは読みにくい。
とにかく神の無駄遣いだし、ページをまたがる内容は本として失格だし。

というか「持ち歩きたいんだよ俺は!」と声を大にして言いたい。
本を意図的に厚くするためにそうしているとしか思えない。

脱線はこのくらいにして。
本当にこの本は持っておいて損をしない内容です。
多分初心者の方々は私と同様に当分眠ってしまうかもしれないほど濃いです。

最後に、オジサンも Expression Studio が無償で欲しいよぉ!

WPF で WMP

チュートリアル : Windows Presentation Foundation での ActiveX コントロールのホスト

ココを見ている人の大半は興味があると思うんでリンク。
てゆーか試しているんだけーが上手くいかない…
上手くいったらなんか書くよ。

C# はもっと早くやっておくべきだったかなぁ?
とはいえ WindowsForm さえ昔の話になりそうな勢いだし。

それどころか IronPython で WPF が使えてしまうようだし…
これから .NET を学ぼうとしている人はいったい何を選べと。

Ruby.NETプロジェクトのリーダーがMSを支持 (1/2) – ITmedia エンタープライズ

コッチはなんだかよく解らないコトになっています。
どっちでもいいから進んでくれと願う。

そんなこんなで昨日は IronPython と XAML の本を探しに近場の本屋に。
一つも無い…来週は名駅の十一階に行ってくるか。

てか雑誌コーナーを見て吹いた、○トランって…
この会社じゃ新雑誌企画会議でこんなアイデアしか出ないのかなぁ。
もはや CMAGAZINE の復刊は絶望的だと感じた今日この頃であった。

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 を作って勉強したことが全部無駄になってしまいそう…