<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>プログラミング：その他</title><link>http://blogs.wankuma.com/shannon/category/764.aspx</link><description>プログラミング：その他</description><managingEditor>αετος / aetos</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>αετος / aetos</dc:creator><title>CSVのRFC</title><link>http://blogs.wankuma.com/shannon/archive/2009/03/13/169622.aspx</link><pubDate>Fri, 13 Mar 2009 02:55:00 GMT</pubDate><guid>http://blogs.wankuma.com/shannon/archive/2009/03/13/169622.aspx</guid><description>&lt;p&gt;2005年10月、&lt;a href="http://www.ietf.org/rfc/rfc4180.txt"&gt;RFC 4180&lt;/a&gt;が発行されています。 &lt;br&gt;タイトルは「&lt;strong&gt;Common Format and MIME Type for Comma-Separated Values (CSV) Files&lt;/strong&gt;」。いわゆるCSVファイルのフォーマットを記したものです。 &lt;br&gt;これは、分類が「Informational」ですから、「規格」とは言い難いかもしれません。 &lt;br&gt;「もし今後、CSVを扱うソフトを作ることがあったら参考にしてね」という程度のものでしょうか。&lt;/p&gt; &lt;p&gt;さて、この中に「あれ？」と思う一文があります。 &lt;br&gt;2.4 &lt;q&gt;The last field in the record must not be followed by a comma.&lt;/q&gt; というのがそれです。 &lt;br&gt;日本語では「レコードの最後のフィールドの後にコンマが続いてはならない」とでも言いましょうか。 &lt;br&gt;つい「最後のフィールドはコンマで終わってはならない」と意訳しそうになりました。&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.aetosfolia.jp/blog/post.aspx?id=5797c0ab-4123-4a5a-98cc-ace2c20febbf"&gt;[続きを読む]&lt;/a&gt;&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/shannon/aggbug/169622.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>αετος</dc:creator><title>More Exceptional C++</title><link>http://blogs.wankuma.com/shannon/archive/2008/11/26/162152.aspx</link><pubDate>Wed, 26 Nov 2008 17:08:00 GMT</pubDate><guid>http://blogs.wankuma.com/shannon/archive/2008/11/26/162152.aspx</guid><wfw:comment>http://blogs.wankuma.com/shannon/comments/162152.aspx</wfw:comment><comments>http://blogs.wankuma.com/shannon/archive/2008/11/26/162152.aspx#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://blogs.wankuma.com/shannon/comments/commentRss/162152.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/shannon/services/trackbacks/162152.aspx</trackback:ping><description>&lt;p&gt;&lt;a href="http://www.amazon.co.jp/dp/4894714833/"&gt;More Exceptional C++ さらに40のクイズ形式によるプログラム問題と解法 (C++in-Depth Series): ハーブ サッター, Herb Sutter, 浜田 光之, 浜田 真理: Amazon.co.jp: 本&lt;/a&gt;&lt;/p&gt; &lt;p&gt;日本語版でてた。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/shannon/aggbug/162152.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>シャノン</dc:creator><title>snprintf</title><link>http://blogs.wankuma.com/shannon/archive/2008/09/05/155662.aspx</link><pubDate>Fri, 05 Sep 2008 11:33:00 GMT</pubDate><guid>http://blogs.wankuma.com/shannon/archive/2008/09/05/155662.aspx</guid><wfw:comment>http://blogs.wankuma.com/shannon/comments/155662.aspx</wfw:comment><comments>http://blogs.wankuma.com/shannon/archive/2008/09/05/155662.aspx#Feedback</comments><slash:comments>2166</slash:comments><wfw:commentRss>http://blogs.wankuma.com/shannon/comments/commentRss/155662.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/shannon/services/trackbacks/155662.aspx</trackback:ping><description>&lt;p&gt;&lt;strong&gt;int snprintf( char * s, size_t n, const char * format, ... );&lt;br&gt;&lt;/strong&gt;という C の関数がある。C99 から標準に加えられたものだ。&lt;br&gt;名前から想像できると思うが、s で指定したバッファに、format に従って書式化した文字列を最大 n 文字書き込む、というものである（この説明には語弊がある。詳細は後述）。&lt;/p&gt; &lt;p&gt;VC++ には、_snprintf という関数がある。&lt;br&gt;引数は標準の snprintf と同じだが、関数名の先頭がアンダースコアであることからもわかるように、これは C の標準関数ではなく、VC++ の独自拡張関数である。VC++ は C99 に対応していないためだ。&lt;/p&gt; &lt;p&gt;この２つ（標準の snprintf と VC++ 独自の _snprintf）は、ある一点において挙動が異なる。&lt;br&gt;それは、書式化した文字列の長さが n 以上だった場合である（ここでは、他バイト文字は考慮せず、1文字1バイトとする）。&lt;/p&gt; &lt;p&gt;標準は、n - 1 文字まで書き込み、最後にナル文字を付加する。つまり、n = 0 でない限り、出力はナル終端されることが保証される。&lt;br&gt;VC++ 版は、結果の長さが n 文字未満である場合のみ、ナル文字が書き込まれる。&lt;br&gt;これは、strncpy と似た挙動であると言える。&lt;/p&gt; &lt;p&gt;どちらが安全かと言えば、標準の方だろう。バッファ オーバーフローが大きな問題として取り沙汰される昨今、新しく追加する関数はより安全なものにしておくという判断は分からないでもない。&lt;br&gt;だが、できれば既存の関数（strncpy）と挙動を合わせて欲しかったと思う。&lt;br&gt;いや、こんなことを考えるのは、俺が今、ナル終端しないでバッファいっぱいに書き込む必要があるようなシステムを作っているからだというのも、そんなのが異端だということも分かってはいるが。&lt;/p&gt; &lt;p&gt;ちなみに、VC++ 2005 から取り入れられたセキュリティ強化バージョンである _snprintf_s は、書き込むバッファのサイズと、バッファに書き込む最大文字数を別の引数として取り、バッファサイズが書き込み文字数 + 1 以上でなければエラーになる。&lt;br&gt;従って、バッファには常にナル文字を書き込むスペースがあることになるので、この関数は、指定した最大文字数に加えてナル文字を書き込む（書き込む文字数 + 1 文字が書き込まれ得る）という動きをする。&lt;/p&gt; &lt;p&gt;そういえば、Microsoft は _s バージョンの関数を標準案として提出したという話も聞いたような気がするが、そっちはどうなってるんだろうなぁ。&lt;br&gt;あと、これは全く余談だが、_lsearch_s は全然セキュアじゃない。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/shannon/aggbug/155662.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>シャノン</dc:creator><title>IDE なんて要らない</title><link>http://blogs.wankuma.com/shannon/archive/2008/09/01/154956.aspx</link><pubDate>Mon, 01 Sep 2008 10:34:00 GMT</pubDate><guid>http://blogs.wankuma.com/shannon/archive/2008/09/01/154956.aspx</guid><wfw:comment>http://blogs.wankuma.com/shannon/comments/154956.aspx</wfw:comment><comments>http://blogs.wankuma.com/shannon/archive/2008/09/01/154956.aspx#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://blogs.wankuma.com/shannon/comments/commentRss/154956.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/shannon/services/trackbacks/154956.aspx</trackback:ping><description>&lt;p&gt;エディタとコンパイラがあればいい。そういう人がいます。&lt;br&gt;VB6 以来の IDE っ子である俺は、今まで、「新しいもの嫌いが何を気取ってやがる」と思ってました。&lt;/p&gt; &lt;p&gt;が、ふむふむ。&lt;br&gt;なかなかどうして、やってみると、これはこれでなんとかなるものですな。&lt;/p&gt; &lt;p&gt;いや、ほら。&lt;br&gt;今の開発が Linux 向けなものですから、VC++ を使うわけにはいかんのですよ。&lt;br&gt;慣れ親しんだ Windows 上で、インテリセンスの効かないエディタでコードを書いて、FTP でサーバに転送して、makefile 経由で gcc でコンパイル、の繰り返しです。&lt;br&gt;全部サーバでやるのはちょっと…vi じゃ使っていてイライラしますし、今から Emacs を覚える気にもならない。&lt;br&gt;まぁコンパイルとリンクを別々にやってるわけじゃないので、いわゆる「エディタとコンパイラ」の要件は満たしてない気がするのですが、今時そんなこと、いくら Unix 使いでもやってないでしょう。&lt;/p&gt; &lt;p&gt;まぁそれでも、色分けできるエディタは最低限必要ですな。あとホイールマウス。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/shannon/aggbug/154956.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>シャノン</dc:creator><title>サーバ運営のハードルは下がるのか？</title><link>http://blogs.wankuma.com/shannon/archive/2008/09/01/154883.aspx</link><pubDate>Mon, 01 Sep 2008 01:16:00 GMT</pubDate><guid>http://blogs.wankuma.com/shannon/archive/2008/09/01/154883.aspx</guid><wfw:comment>http://blogs.wankuma.com/shannon/comments/154883.aspx</wfw:comment><comments>http://blogs.wankuma.com/shannon/archive/2008/09/01/154883.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://blogs.wankuma.com/shannon/comments/commentRss/154883.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/shannon/services/trackbacks/154883.aspx</trackback:ping><description>&lt;p&gt;本当にいろんなことが、パソコンでできるようになりました。&lt;br&gt;文書が作れる、絵が描ける、音楽が聴ける、DVDも観れる。&lt;br&gt;初音ミクはDTMのハードルを大きく下げたと思います。それでも作曲のサの字も知らない俺のようなやつが買っても手に余るだけだと思いますが。&lt;/p&gt; &lt;p&gt;そして、我らがマイクロソフト！　Visual Studio Express Editions なんてものを出してくれたおかげで、プログラミングまでタダでできるようになっちゃいました。&lt;br&gt;プログラミングなんて、本業でない人がやるものの中では、マニアックさでは上位に入るものではないでしょうかね。&lt;br&gt;いや、素晴らしいことです。&lt;/p&gt; &lt;p&gt;そんなマイクロソフトさんに、ぜひ次に頑張ってほしいのが、サーバ運営のハードルを下げることです。&lt;br&gt;要するに、趣味で自家サーバを立て易くしてくださいと。&lt;/p&gt; &lt;p&gt;もちろん、現状でも自家サーバを安価に立てることはできます。&lt;br&gt;Unix で Apache 使うとか、Windows 用でも無料の Web サーバソフトはあります（サーバ OS じゃないと接続数制限があったっけ？）。&lt;/p&gt; &lt;p&gt;でも、ほら、どうせなら、マイクロソフトさんが宣伝している最新の IIS でもって、ASP.NET とか WCF とか駆使してやりたいじゃないですか。&lt;br&gt;そういう本はよく出てますし、セミナーも積極的にやってくれてますけど、レンタルサーバだと使えないことが多いし。&lt;br&gt;Windows 2008 には Web Edition なんてのがありますが、やっぱりお値段がね。趣味では買えない。&lt;br&gt;どうもこの領域は高止まりしている気がします。&lt;br&gt;いやいや、難癖付けてるつもりはないんですよ。&lt;br&gt;もちろん、それ相応の機能制限はあって当然でしょうとも。&lt;/p&gt; &lt;p&gt;さて、一方、仮にマイクロソフトが英断を下して、そのあたりを気軽に使えるようになったとして、使う我々の側はどうなのでしょう？&lt;br&gt;最初にも言いましたが、いくら初音ミクが出たからといって、誰も彼も作曲ができるようになるわけではありません。&lt;br&gt;Visual Studio Express Edition だって、入手することは誰にも可能であるものの、誰にでも使いこなせるわけではありません。&lt;br&gt;そのへん、サーバ運営は？&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.wankuma.com/tyappi/archive/2008/08/31/154858.aspx"&gt;ちゃっぴさんのところ&lt;/a&gt;でおあつらえ向きな話題が上がってたので絡めますが、サーバ開発の経験がない俺からすると、Java や C# のような（広義の意味での）マネージ言語で作っても、いろいろ気をつけないと、あっという間にスーパーハカーの標的にされてウィルスばら撒くことになるんじゃないかなんていう漠然とした不安があります。&lt;br&gt;最近はクロスサイトナントカっていうのもよく聞きます。&lt;br&gt;マネージ言語を使うことでバッファオーバーフローの危険がなくなった（ゼロになったと言うと突っ込まれそうだな）ように、最近の開発環境ではクロスサイトナントカも低減できるようになっていたりするんでしょうか。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/shannon/aggbug/154883.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>シャノン</dc:creator><title>Windows SDK Configuation Tool が使えない</title><link>http://blogs.wankuma.com/shannon/archive/2008/08/30/154773.aspx</link><pubDate>Sat, 30 Aug 2008 21:15:00 GMT</pubDate><guid>http://blogs.wankuma.com/shannon/archive/2008/08/30/154773.aspx</guid><wfw:comment>http://blogs.wankuma.com/shannon/comments/154773.aspx</wfw:comment><comments>http://blogs.wankuma.com/shannon/archive/2008/08/30/154773.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/shannon/comments/commentRss/154773.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/shannon/services/trackbacks/154773.aspx</trackback:ping><description>&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e6e1c3df-a74f-4207-8586-711ebe331cdc&amp;amp;displaylang=en"&gt;Windows SDK for Windows Server 2008 and .NET Framework version 3.5&lt;/a&gt; をインストールするとスタートメニューに追加される &lt;strong&gt;Windows SDK Configuation Tool &lt;/strong&gt;ですが、GUI で立ち上げるとインストール済みの SDK のバージョンが出てこない。 &lt;br&gt;で、コマンドラインでも実行できるのですが、インストール済みのバージョンを一覧表示する &lt;strong&gt;-version&lt;/strong&gt; コマンドや、現在のバージョンを表示する &lt;strong&gt;-current&lt;/strong&gt; コマンドを使うと例外で落ちる。&lt;/p&gt; &lt;p&gt;原因は、例外のメッセージからおおよその見当が付いていましたが、バージョンナンバーの扱いにあります。 &lt;br&gt;このツールは内部で Version クラスを使用しているのですが、Visual Studio 2008 日本語版と一緒にインストールされる Windows SDK は&lt;strong&gt;バージョン 6.0A &lt;/strong&gt;というやつなのです。 &lt;br&gt;Version クラスは "6.0A" なんて文字列を有効なバージョン番号とみなさないために落ちている、ということですね。&lt;/p&gt; &lt;p&gt;内部的にやってることは、レジストリの &lt;strong&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows&lt;/strong&gt; の CurrentVersion と CurrentInstallationFolder を設定しているだけなので、regedit.exe でこれらを設定してやれば同じことはできます。あ、64bit OS を使っている場合は、&lt;strong&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows&lt;/strong&gt; も更新してくださいね。&lt;/p&gt; &lt;p&gt;しかしこれは… SDK Team が "6.0A" なんてバージョンが出てくるとは思ってなかったというか、今でもそんなバージョンがあることを知らないということなんじゃないかなぁ。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/shannon/aggbug/154773.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>シャノン</dc:creator><title>ローマ字も標準化してくれないかな</title><link>http://blogs.wankuma.com/shannon/archive/2008/08/05/151828.aspx</link><pubDate>Tue, 05 Aug 2008 19:06:00 GMT</pubDate><guid>http://blogs.wankuma.com/shannon/archive/2008/08/05/151828.aspx</guid><wfw:comment>http://blogs.wankuma.com/shannon/comments/151828.aspx</wfw:comment><comments>http://blogs.wankuma.com/shannon/archive/2008/08/05/151828.aspx#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blogs.wankuma.com/shannon/comments/commentRss/151828.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/shannon/services/trackbacks/151828.aspx</trackback:ping><description>&lt;p&gt;&lt;a href="http://www.microsoft.com/japan/presspass/detail.aspx?newsid=3491"&gt;マイクロソフト製品ならびにサービスにおける外来語カタカナ用語末尾の長音表記の変更について&lt;/a&gt;&lt;/p&gt; &lt;p&gt;マイクロソフトが長音の表記ルールを変更したというニュースはまだ記憶に新しいところです。&lt;br&gt;俺はこの件についてはコメントを差し控えます。&lt;/p&gt; &lt;p&gt;ところで、マイクロソフトはアメリカの企業ですから、ローマ字表記なんて使わないでしょうが、日本でシステム開発をしている皆さんはどうでしょう？　変数名やコントロール名にローマ字表記を使っているでしょうか？&lt;/p&gt; &lt;p&gt;全部英語にするという人もいるかもしれません。&lt;br&gt;が、英語に不慣れな我々がやると、ましてや業務固有の用語などは、どうにも不自然な訳になってしまいがちです。&lt;br&gt;そのため、俺はローマ字容認派です。&lt;/p&gt; &lt;p&gt;日本語（漢字かなカナ混じり）で名前をつける人もいるかもしれません。&lt;br&gt;やめろとは言いませんが、俺は嫌です。&lt;br&gt;IMEをONにしないとインテリセンスさえ出ないのはものすごくイライラします。&lt;br&gt;まぁ、えっと…何て言うんでしたっけアレ、ローマ字タイプでインクリメンタル変換してくれるやつ…が搭載されればいいのかもしれませんが、難しいかもしれませんね。&lt;/p&gt; &lt;p&gt;閑話休題。&lt;/p&gt; &lt;p&gt;ローマ字の難点は、表記のゆれがあることです。&lt;br&gt;例えば、「状態」は「Zyoutai」か「Joutai」か。「Jyoutai」なんてのも見たことがあります。&lt;br&gt;「調査」は「Tyousa」「Chousa」「Cyousa」のどれでしょうか。&lt;br&gt;「開始」は「Kaisi」でしょうか、それとも「Kaishi」でしょうか。&lt;br&gt;長音は省く場合もあります。「東京」が「Toukyou」ではなく「Tokyo」になるように。&lt;br&gt;これらはあらかじめ決めておかないと、プログラミング段階になって混乱します。&lt;/p&gt; &lt;p&gt;こういうのも、どこかが指針を作ってくれないかな、と思うんですけど…そう思いませんか？&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/shannon/aggbug/151828.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>シャノン</dc:creator><title>ぐぐっても出てこなくなったなぁ…</title><link>http://blogs.wankuma.com/shannon/archive/2008/07/18/149613.aspx</link><pubDate>Fri, 18 Jul 2008 18:52:00 GMT</pubDate><guid>http://blogs.wankuma.com/shannon/archive/2008/07/18/149613.aspx</guid><wfw:comment>http://blogs.wankuma.com/shannon/comments/149613.aspx</wfw:comment><comments>http://blogs.wankuma.com/shannon/archive/2008/07/18/149613.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.wankuma.com/shannon/comments/commentRss/149613.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/shannon/services/trackbacks/149613.aspx</trackback:ping><description>VB6の資料orz&lt;img src ="http://blogs.wankuma.com/shannon/aggbug/149613.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>シャノン</dc:creator><title>何の冗談でしょうか？</title><link>http://blogs.wankuma.com/shannon/archive/2008/06/10/142675.aspx</link><pubDate>Tue, 10 Jun 2008 19:12:00 GMT</pubDate><guid>http://blogs.wankuma.com/shannon/archive/2008/06/10/142675.aspx</guid><wfw:comment>http://blogs.wankuma.com/shannon/comments/142675.aspx</wfw:comment><comments>http://blogs.wankuma.com/shannon/archive/2008/06/10/142675.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://blogs.wankuma.com/shannon/comments/commentRss/142675.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/shannon/services/trackbacks/142675.aspx</trackback:ping><description>&lt;P&gt;VB6なんですけど。&lt;/P&gt;
&lt;P&gt;グリッドコントロールを使わないで、ラベルと Line で擬似グリッドを実現するってのは&amp;#8230;。&lt;/P&gt;
&lt;P&gt;フォーカス制御も全部自前。データバインドなんてありません。ADOっておいしいんですか？&lt;BR&gt;サーバ側プロセスが DB からデータを取ってきて、それをソケット経由で受け取って、クライアント側でゴリゴリ編集して、サーバ側プロセスにソケットで送り返して、サーバ側プロセスが SQL 組み立てて DB に書き込みます。&lt;/P&gt;
&lt;P&gt;「うわぁ、プログラムってここまでひどく書けるんだ&amp;#8230;」みたいな感じがしてきました。&lt;/P&gt;
&lt;P&gt;&amp;#8230;逃げていいですか。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/shannon/aggbug/142675.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>シャノン</dc:creator><title>続・何年かぶりにVB6</title><link>http://blogs.wankuma.com/shannon/archive/2008/06/06/142064.aspx</link><pubDate>Fri, 06 Jun 2008 17:27:00 GMT</pubDate><guid>http://blogs.wankuma.com/shannon/archive/2008/06/06/142064.aspx</guid><wfw:comment>http://blogs.wankuma.com/shannon/comments/142064.aspx</wfw:comment><comments>http://blogs.wankuma.com/shannon/archive/2008/06/06/142064.aspx#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://blogs.wankuma.com/shannon/comments/commentRss/142064.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/shannon/services/trackbacks/142064.aspx</trackback:ping><description>&lt;P&gt;久しぶりにVB6をさわったら、既定のインスタンスが大好きになってしまいそうです。どうしよう。&lt;del&gt;これが恋？&lt;/del&gt;&lt;BR&gt;コメントにしたら長くなりそうなので&lt;DEL&gt;円取り立てました&lt;/DEL&gt;エントリ立てました。&lt;/P&gt;
&lt;P&gt;いわゆる業務アプリ開発において。&lt;BR&gt;画面がいくつかあるとします。&lt;BR&gt;画面遷移図が木構造になっておらず、AからB、BからC、CからAという遷移が可能だとします（BとCを通ってAに戻るイメージです）。&lt;BR&gt;木構造ならモーダルフォームで楽が出来るのですが、このように輪になっているとそれはできません。&lt;BR&gt;こういう場合、次に表示する画面を毎回 new するわけにはいかないので、一度作った画面のインスタンスは、遷移元画面クラスの外に置かなければなりません。&lt;BR&gt;既定のインスタンスは、それを暗黙のうちにやってくれるものと言うことができます。&lt;/P&gt;
&lt;P&gt;&lt;A id=viewpost.ascx_TitleUrl href="/jeanne/archive/2006/10/25/42449.aspx"&gt;VB6.0 で「Form の既定のインスタンス」を防ぐには?&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;防ぐなｗ&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;このような、正当な方法を利用するメリットはいくつかあります。 &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;インスタンスを生成することで、初期化が保証される 
&lt;LI&gt;スコープを狭めることができる (例のコードでは Command1_Click プロシージャ内でのみ有効) 
&lt;LI&gt;結果、他の場所から勝手に呼び出されてしまう心配がない 
&lt;LI&gt;外部のどこから操作されているのか明確になる 
&lt;LI&gt;別のインスタンスを作って複製可能 &lt;/LI&gt;&lt;/UL&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;ふむふむ？&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;インスタンスを生成することで、初期化が保証される 
&lt;UL&gt;
&lt;LI&gt;既定のインスタンスを使うと初期化されないんですの？&lt;BR&gt;既定のインスタンスのメソッドを最初に呼んだ時に Initialize が走るって書いてありますやん。 &lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;スコープを狭めることができる (例のコードでは Command1_Click プロシージャ内でのみ有効) 
&lt;UL&gt;
&lt;LI&gt;それじゃ狭すぎて困るんです。遷移元画面よりも広いスコープが必要なんです。 &lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;結果、他の場所から勝手に呼び出されてしまう心配がない 
&lt;UL&gt;
&lt;LI&gt;それはそうかも。 &lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;外部のどこから操作されているのか明確になる 
&lt;UL&gt;
&lt;LI&gt;どこかで一元管理しているなら別として、遷移元画面で new しているような状況では、そんなに変わらないと思いますが。 &lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;別のインスタンスを作って複製可能 
&lt;UL&gt;
&lt;LI&gt;実のところ、同じ画面のインスタンスをいくつも作る必要がある場合というのは、そう多くないものです。 &lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;画面管理クラスをちゃんと設計して、遷移元画面から直接次の画面を Show しないように作るのが正道かもしれませんが、理想と現実は得てして異なるものです。&lt;BR&gt;# 100以上のフォームを、「動かなくてもいいから、とりあえず今日中に画面遷移だけでもするようにしてくれ」って昼過ぎに言われてもね&amp;#8230;。&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/shannon/aggbug/142064.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>