<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>kyara</title><link>http://thespoke.net/blogs/kyara/default.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 1.1 (Build: 1.1.0.50602)</generator><item><title>はてな始めました</title><link>http://thespoke.net/blogs/kyara/archive/2007/05/13/985605.aspx</link><pubDate>Mon, 14 May 2007 03:34:00 GMT</pubDate><guid isPermaLink="false">b2b995b1-9c1d-4d25-9f9c-28d53840b74c:985605</guid><dc:creator>kyara</dc:creator><slash:comments>0</slash:comments><comments>http://thespoke.net/blogs/kyara/comments/985605.aspx</comments><wfw:commentRss>http://thespoke.net/blogs/kyara/commentrss.aspx?PostID=985605</wfw:commentRss><description>&lt;P&gt;最後のエントリーの日付を見たら、一年以上ほっぽいてたんですね。&lt;/P&gt;
&lt;P&gt;なんか、こちら久しぶりって言うより使い方がもうよくわからないです。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;で、近況ですがまあお仕事もそこそこ忙しいのでブログ自体やってなかったですけど&lt;/P&gt;
&lt;P&gt;仕事だけに忙殺されるってのもなんか嫌なのでちょっと前からHatena::Diaryのほうで&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Title::会者定離で以降&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;ID::murase_syuka&lt;/STRONG&gt;（kyaraが既に使われていた＊A＊）&lt;/P&gt;
&lt;P&gt;で、ぼちぼち書いています。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;まあ、こちらのメンバとは、時たま会うのは２人くらいなっちゃいましたけど、&lt;/P&gt;
&lt;P&gt;覚えていてくれる人がいれば、覗いてください＾＾；&lt;A href="http://d.hatena.ne.jp/murase_syuka/"&gt;こちら&lt;/A&gt;です。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://thespoke.net/aggbug.aspx?PostID=985605" width="1" height="1"&gt;</description></item><item><title>Unixのせかい</title><link>http://thespoke.net/blogs/kyara/archive/2006/03/14/945126.aspx</link><pubDate>Wed, 15 Mar 2006 02:29:00 GMT</pubDate><guid isPermaLink="false">b2b995b1-9c1d-4d25-9f9c-28d53840b74c:945126</guid><dc:creator>kyara</dc:creator><slash:comments>0</slash:comments><comments>http://thespoke.net/blogs/kyara/comments/945126.aspx</comments><wfw:commentRss>http://thespoke.net/blogs/kyara/commentrss.aspx?PostID=945126</wfw:commentRss><description>&lt;P&gt;ウニックス系の環境なり、言語なりをウインドウズに移植された物を使っていると&lt;/P&gt;
&lt;P&gt;ナチュラルに、「パッチを当ててください」とか出てきます。&lt;/P&gt;
&lt;P&gt;＜メモ＞&lt;/P&gt;
&lt;P&gt;diff パッチ作成&lt;/P&gt;
&lt;P&gt;patch　パッチ適用&lt;/P&gt;
&lt;P&gt;patch -p1 &amp;lt; patch_code&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;「窓にはdiffもpatchもないんです(｀へ´)、MSさんおっちょこちょいだから、SFUにdiffは入れてもpatch入ってません」&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;えぇ、入ってません。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;まあ、入れればいいんでしょうけどめんどくさいです。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;他にUnix環境作るとなるとcygwin,coLinux,VMplayer,KNOPPIXなんかが、あるんでしょうけどまずcygwinは嫌です。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;環境がwindowsと混ざる気がしてcygwinあんまり好きじゃないです。とか言いながら会社ではcygwinな人...orz&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;あと、KNOPPIXなどは簡単で便利なんでしょうけどちょっと、合わない気がします。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;今回は環境が一番クリーンそうなVMplayerでも入れてみます。フリーのUnix系のイメージがいくつか一緒にあるみたいなので簡単かなって感じです。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;PS、イメージのDLに結構時間懸かりそうです。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;＜追記＞&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;ubuntu（うぶんつ？）入れてみました。最初でsound drive関連でエラー出てましたが、普通に使えそう。おいおい感想書いていきます。&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;しかし、これがフリーですか。いい時代ですね。&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://thespoke.net/aggbug.aspx?PostID=945126" width="1" height="1"&gt;</description></item><item><title>Webアプリのお勉強始めました</title><link>http://thespoke.net/blogs/kyara/archive/2006/03/10/944261.aspx</link><pubDate>Sat, 11 Mar 2006 04:49:00 GMT</pubDate><guid isPermaLink="false">b2b995b1-9c1d-4d25-9f9c-28d53840b74c:944261</guid><dc:creator>kyara</dc:creator><slash:comments>0</slash:comments><comments>http://thespoke.net/blogs/kyara/comments/944261.aspx</comments><wfw:commentRss>http://thespoke.net/blogs/kyara/commentrss.aspx?PostID=944261</wfw:commentRss><description>&lt;P&gt;一先ず、lighttpdとruby on railsの勉強中。&lt;/P&gt;
&lt;P&gt;最近忙しいので更新もボツボツですけど、メモ代わりに書いていきます。&lt;/P&gt;
&lt;P&gt;しかし、Linuxを走らせるセカンドマシンとして「グラタン」ほしいっす。&lt;/P&gt;
&lt;P&gt;＜３・１４＞&lt;/P&gt;
&lt;P&gt;lighttpdは、apatchに比べて異様に小さいです。見たときこれだけって感じ。&lt;/P&gt;
&lt;P&gt;現状lighttpd選んだ理由であるFastCGIの設定方法がいまいち解らないｗ；&lt;/P&gt;&lt;img src="http://thespoke.net/aggbug.aspx?PostID=944261" width="1" height="1"&gt;</description></item><item><title>MindMapについて</title><link>http://thespoke.net/blogs/kyara/archive/2006/01/11/930820.aspx</link><pubDate>Thu, 12 Jan 2006 04:50:00 GMT</pubDate><guid isPermaLink="false">b2b995b1-9c1d-4d25-9f9c-28d53840b74c:930820</guid><dc:creator>kyara</dc:creator><slash:comments>0</slash:comments><comments>http://thespoke.net/blogs/kyara/comments/930820.aspx</comments><wfw:commentRss>http://thespoke.net/blogs/kyara/commentrss.aspx?PostID=930820</wfw:commentRss><description>&lt;P&gt;なんか、ちょっと有名らしいMindMapを試してみようとFreeMindをインストールしてみました。&lt;/P&gt;
&lt;P&gt;ちなみに、MindMapの詳しい説明はGoogle先生に聞いてください。結構ヒットしますし、&lt;/P&gt;
&lt;P&gt;そもそもが、勉強においてのノートの記述の方法らしいので、紙と鉛筆があれば出来ます。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;今年受験の人は間に合わないでしょうけど、来年以降の人は試してみればどうでしょうか。&lt;/P&gt;
&lt;P&gt;ちょっと触ってみた感じでは良く出来てるソフトですし、暗記物（英単語、歴史等）には効果が期待できそうです。&lt;/P&gt;
&lt;P&gt;個人的にも英語の勉強に使えるかなって、思ってます。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;なおこれ、XPの環境では勝手に日本語になってくれるみたいですが、2000では設定自分でしなくちゃならないみたい。&lt;/P&gt;
&lt;P&gt;＜訂正＞日本語化されてました。2000に入れてたのバージョン古かったです。今最新は0.8.0みたい。&lt;/P&gt;&lt;img src="http://thespoke.net/aggbug.aspx?PostID=930820" width="1" height="1"&gt;</description></item><item><title>そろそろ再開しなくては</title><link>http://thespoke.net/blogs/kyara/archive/2005/10/29/806861.aspx</link><pubDate>Sat, 29 Oct 2005 05:08:00 GMT</pubDate><guid isPermaLink="false">b2b995b1-9c1d-4d25-9f9c-28d53840b74c:806861</guid><dc:creator>kyara</dc:creator><slash:comments>0</slash:comments><comments>http://thespoke.net/blogs/kyara/comments/806861.aspx</comments><wfw:commentRss>http://thespoke.net/blogs/kyara/commentrss.aspx?PostID=806861</wfw:commentRss><description>&lt;P&gt;題名のままですね。もう２ヶ月くらいなるのかな？一先ずC++のフクシュウさっさと纏めないと。それがめんどくさかったんだけどねｗ；&lt;/P&gt;
&lt;P&gt;目標、週刊。こんなことばっかりいっている気が、月刊の方がいいかな。&lt;/P&gt;&lt;img src="http://thespoke.net/aggbug.aspx?PostID=806861" width="1" height="1"&gt;</description></item><item><title>＜思いっきり途中です/＞C++のフクシュウ＜その２＞ </title><link>http://thespoke.net/blogs/kyara/archive/2005/08/20/250768.aspx</link><pubDate>Sat, 20 Aug 2005 19:12:00 GMT</pubDate><guid isPermaLink="false">b2b995b1-9c1d-4d25-9f9c-28d53840b74c:250768</guid><dc:creator>kyara</dc:creator><slash:comments>0</slash:comments><comments>http://thespoke.net/blogs/kyara/comments/250768.aspx</comments><wfw:commentRss>http://thespoke.net/blogs/kyara/commentrss.aspx?PostID=250768</wfw:commentRss><description>&lt;P&gt;さて、次は&lt;/P&gt;
&lt;P&gt;３、コンストラクタとデストラクタについて&lt;/P&gt;
&lt;P&gt;コンストラクタとデストラクタについて、考えていってみまっしょい。&lt;/P&gt;
&lt;P&gt;通常クラスの生成は、&lt;/P&gt;
&lt;P&gt;class A&lt;BR&gt;{&lt;BR&gt;public:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; A(){};&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ~A(){};&lt;BR&gt;};&lt;/P&gt;
&lt;P&gt;int main()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A a;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //生成されてからの寿命はスコープ間に限定&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //確保メモリはスタックに詰まれる&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A *pa = new A();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete pa;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //寿命は開放するまで&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //動的に確保する&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;下記のnew/delete表記法だと、コンストラクタとデストラクタの実行が何時起こるかは&lt;BR&gt;new/deleteの実行タイミングですが、&lt;BR&gt;ではでは、上記の記法だと、どうなるでしょう？&lt;/P&gt;
&lt;P&gt;{&lt;BR&gt;A a;&lt;BR&gt;A::A()&lt;BR&gt;}&lt;BR&gt;A::~A()&lt;/P&gt;
&lt;P&gt;って、こんな感じでした。コンパイラは、スコープを抜ける前にデストラクタ関数呼び出しを&lt;BR&gt;埋め込むって感じですかね。これだとCでの実装も簡単そうですね。&lt;BR&gt;CwithClassは、こんな感じでクラスを導入していったんでしょか。&lt;BR&gt;ちなみに、&lt;/P&gt;
&lt;P&gt;{&lt;BR&gt;A a;&lt;BR&gt;B b;&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;の場合は、&lt;/P&gt;
&lt;P&gt;{&lt;BR&gt;A::A();&lt;BR&gt;B::B();&lt;BR&gt;}&lt;BR&gt;B::~B();&lt;BR&gt;A::~A();&lt;/P&gt;
&lt;P&gt;でした。&lt;BR&gt;この辺のコンストラクタとデストラクタの順序関係は、クラスAの参照をクラスBが使っていた場合の&lt;BR&gt;ためでしょうね。こんなのを見るとDXの取得した順の逆に開放を思い出しますね。&lt;BR&gt;多分、似たような問題があるんでしょか？&lt;/P&gt;
&lt;P&gt;４、仮想関数のオーバーライドについて&lt;/P&gt;
&lt;P&gt;で、仮想関数のオーバーライドについてです。&lt;BR&gt;本題ですが、引っ張っても問題なのでちゃっちゃっとやりまっしょい。&lt;/P&gt;
&lt;P&gt;さて始めに、&lt;/P&gt;
&lt;P&gt;class Base&lt;BR&gt;{&lt;BR&gt;public:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Base(){cout&amp;lt;&amp;lt;"start Base"&amp;lt;&amp;lt;endl;};&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ~Base(){cout&amp;lt;&amp;lt;"end Base"&amp;lt;&amp;lt;endl;}&lt;BR&gt;};&lt;/P&gt;
&lt;P&gt;class Derivative : public Base&lt;BR&gt;{&lt;BR&gt;public:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Derivative(){cout&amp;lt;&amp;lt;"start Deriva"&amp;lt;&amp;lt;endl;};&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ~Derivative(){cout&amp;lt;&amp;lt;"end Deriva"&amp;lt;&amp;lt;endl;};&lt;BR&gt;};&lt;/P&gt;
&lt;P&gt;int main()&lt;BR&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Derivative *pd = new Derivative();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete pd;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout&amp;lt;&amp;lt;endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Derivative *pd = new Derivative();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Base *pb = static_cast&amp;lt;Base*&amp;gt;(pd);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete pb;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;//実行結果&lt;BR&gt;start Base&lt;BR&gt;start Deriva&lt;BR&gt;end Deriva&lt;BR&gt;end Base&lt;/P&gt;
&lt;P&gt;start Base&lt;BR&gt;start Deriva&lt;BR&gt;end Base&lt;/P&gt;
&lt;P&gt;上記のように派生クラスのポインタを基本クラスのポインタにキャストした後、&lt;BR&gt;開放すると、派生クラスのデストラクタが呼び出されない問題があります。&lt;BR&gt;結構有名な話で、これの解決策として、「デストラクタをVirtualにする」&lt;BR&gt;っていうのが、常識です。&lt;/P&gt;
&lt;P&gt;これ自体に特に問題も異論も無いのですが、私がこれを聞いた時は、なぜVirtualにすれば&lt;BR&gt;問題が解決するのかずっと疑問でした。（Virtualの動作原理を良く知らなかったので）ので、調べてみたわけです。&lt;/P&gt;
&lt;P&gt;ところで、上記の問題はdeleteに問題があり、基本クラスにキャストされて渡された元派生クラスのポインタを&lt;BR&gt;基本クラスとして、deleteするので、基本クラスのデストラクタしか呼ばれません。&lt;BR&gt;ですので、下記のように、キャストはしても&lt;/P&gt;
&lt;P&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Derivative pd;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Base *pb = static_cast&amp;lt;Base*&amp;gt;(&amp;amp;pd);&amp;nbsp;&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;deleteが、なければ特に問題も無いわけです。&lt;BR&gt;静的に確保したメモリ領域なので、確保した時点で開放も決まっていますが、&lt;BR&gt;動的にメモリを確保し、キャストなどをした場合上記のように問題となります。&lt;/P&gt;
&lt;P&gt;さてさて、Virtualについて考えていきます。&lt;BR&gt;Virtual関数を含まない時は、&lt;/P&gt;
&lt;P&gt;class B&lt;BR&gt;{&lt;BR&gt;private:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int b1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int b2;&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;class D : public B&lt;BR&gt;{&lt;BR&gt;private:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int d1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int d2;&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;int main()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; D* pd = new D();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; B* pb = static_cast&amp;lt;B&amp;gt;(pd);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "pd" &amp;lt;&amp;lt; ' ' &amp;lt;&amp;lt; (pd) &amp;lt;&amp;lt; endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "pb" &amp;lt;&amp;lt; ' ' &amp;lt;&amp;lt; (pb) &amp;lt;&amp;lt; endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "b1" &amp;lt;&amp;lt; ' ' &amp;lt;&amp;lt; &amp;amp;(pd-&amp;gt;b1) &amp;lt;&amp;lt; endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "b2" &amp;lt;&amp;lt; ' ' &amp;lt;&amp;lt; &amp;amp;(pd-&amp;gt;b2) &amp;lt;&amp;lt; endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "d1" &amp;lt;&amp;lt; ' ' &amp;lt;&amp;lt; &amp;amp;(pd-&amp;gt;d1) &amp;lt;&amp;lt; endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "d2" &amp;lt;&amp;lt; ' ' &amp;lt;&amp;lt; &amp;amp;(pd-&amp;gt;d2) &amp;lt;&amp;lt; endl;&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;//出力&lt;BR&gt;pd 00343D98&lt;BR&gt;pb 00343D98&lt;BR&gt;b1 00343D98&lt;BR&gt;b2 00343D9C&lt;BR&gt;d1 00343DA0&lt;BR&gt;d2 00343DA4&lt;/P&gt;
&lt;P&gt;メモリ配置はこんな感じでしょう。&lt;/P&gt;
&lt;P&gt;address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value&lt;/P&gt;
&lt;P&gt;0x0000&amp;nbsp;&amp;nbsp;&amp;nbsp; *pb,*pd-&amp;gt;B::b1&lt;BR&gt;0x0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B::b2&lt;BR&gt;0x0008&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D::d1&lt;BR&gt;0x000C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D::d2&lt;/P&gt;
&lt;P&gt;さて、次にVritual関数を含む時です。&lt;/P&gt;
&lt;P&gt;class B&lt;BR&gt;{&lt;BR&gt;private:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int b1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int b2;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; virtual void fb1();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; virtual void fb2();&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;void B::fb1()&lt;BR&gt;{cout &amp;lt;&amp;lt; "fb1" &amp;lt;&amp;lt; endl;}&lt;BR&gt;void&amp;nbsp; B::fb2()&lt;BR&gt;{cout &amp;lt;&amp;lt; "fb2" &amp;lt;&amp;lt; endl;}&lt;/P&gt;
&lt;P&gt;class D : public B&lt;BR&gt;{&lt;BR&gt;private:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int d1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int d2;&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;int main()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; D* pd = new D();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; B* pb = static_cast&amp;lt;B&amp;gt;(pd);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "pd" &amp;lt;&amp;lt; ' ' &amp;lt;&amp;lt; (pd) &amp;lt;&amp;lt; endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "pb" &amp;lt;&amp;lt; ' ' &amp;lt;&amp;lt; (pb) &amp;lt;&amp;lt; endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "b1" &amp;lt;&amp;lt; ' ' &amp;lt;&amp;lt; &amp;amp;(pd-&amp;gt;b1) &amp;lt;&amp;lt; endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "b2" &amp;lt;&amp;lt; ' ' &amp;lt;&amp;lt; &amp;amp;(pd-&amp;gt;b2) &amp;lt;&amp;lt; endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "d1" &amp;lt;&amp;lt; ' ' &amp;lt;&amp;lt; &amp;amp;(pd-&amp;gt;d1) &amp;lt;&amp;lt; endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "d2" &amp;lt;&amp;lt; ' ' &amp;lt;&amp;lt; &amp;amp;(pd-&amp;gt;d2) &amp;lt;&amp;lt; endl;&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value&lt;/P&gt;
&lt;P&gt;0x0000&amp;nbsp;&amp;nbsp;&amp;nbsp; *pb,*pd-&amp;gt;B::b1&lt;BR&gt;0x0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B::b2&lt;BR&gt;0x0008&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D::d1&lt;BR&gt;0x000C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D::d2&lt;/P&gt;&lt;img src="http://thespoke.net/aggbug.aspx?PostID=250768" width="1" height="1"&gt;</description></item><item><title>C++のフクシュウ＜その１＞</title><link>http://thespoke.net/blogs/kyara/archive/2005/07/23/248703.aspx</link><pubDate>Sat, 23 Jul 2005 21:35:00 GMT</pubDate><guid isPermaLink="false">b2b995b1-9c1d-4d25-9f9c-28d53840b74c:248703</guid><dc:creator>kyara</dc:creator><slash:comments>0</slash:comments><comments>http://thespoke.net/blogs/kyara/comments/248703.aspx</comments><wfw:commentRss>http://thespoke.net/blogs/kyara/commentrss.aspx?PostID=248703</wfw:commentRss><description>&lt;P&gt;さてさて、新人研修も終わってある程度お仕事モードになってきました。&lt;BR&gt;とは言え、新人に行き成りお仕事出すほど切羽詰った状況でもない？ようですし&lt;BR&gt;私も、何でも持ってきてくださいと言えない新人エンジニアな訳でして＞＜&lt;BR&gt;で、これからプログラム漬けの毎日が始まっていきますので、&lt;BR&gt;復習がてら、C++の低レベルな部分の動作を見ていこうと思います。&lt;BR&gt;基礎固めということで。&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;注意（間違ってたらごめんなさい。ぼろくそ言って下さい。修正します）&lt;BR&gt;環境として、&lt;BR&gt;VS.net2003のC++コンパイラ&lt;BR&gt;を、使用しています。&lt;BR&gt;他の、実装では違う動作もするかもしれませんが、ここでは気にしません。&lt;BR&gt;GCCの方が良いかもしれませんが、サイトがサイトなので皆さんVSが多いでしょうし＾＾；&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#9900cc&gt;最終的には、どうして継承するクラスのデストラクタをvirtualに&lt;BR&gt;した方が良いのか実装の方面から、やる予定...&lt;FONT size=1&gt;です&lt;/FONT&gt;。&lt;BR&gt;一先ず、コンストラクタとデストラクタ、継承、キャスト、&lt;BR&gt;仮想関数の実装方法（vptr,vtable）などを&lt;BR&gt;分かりやすく纏められたらっと思ってます。&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT size=4&gt;１、継承と委譲によるコンストラクタとデストラクタの動作順について&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;クラス継承の場合のコンストラクタとデストラクタの動作順序は&lt;BR&gt;教科書にも書かれてるくらい基本的なことと思いますが、&lt;BR&gt;メンバ変数としてクラスを持つ場合の順序はどうなるのでしょうか？&lt;BR&gt;確認してみまっしょよい。&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff8c00&gt;using namespace std;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff8c00&gt;class B1&lt;BR&gt;{&lt;BR&gt;public:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; B1(){cout &amp;lt;&amp;lt; "B1" &amp;lt;&amp;lt; endl;};&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ~B1(){cout &amp;lt;&amp;lt; "~B1" &amp;lt;&amp;lt; endl;};&lt;BR&gt;};&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff8c00&gt;class B2&lt;BR&gt;{&lt;BR&gt;public:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; B2(){cout &amp;lt;&amp;lt; "B2" &amp;lt;&amp;lt; endl;};&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ~B2(){cout &amp;lt;&amp;lt; "~B2" &amp;lt;&amp;lt; endl;};&lt;BR&gt;};&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff8c00&gt;class D:public B1, public B2&lt;BR&gt;{&lt;BR&gt;public:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; D(){cout &amp;lt;&amp;lt; "D" &amp;lt;&amp;lt; endl;};&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ~D(){cout &amp;lt;&amp;lt; "~D" &amp;lt;&amp;lt; endl;};&lt;BR&gt;};&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff8c00&gt;class I&lt;BR&gt;{&lt;BR&gt;public:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I(){cout &amp;lt;&amp;lt; "I" &amp;lt;&amp;lt; endl;};&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ~I(){cout &amp;lt;&amp;lt; "~I" &amp;lt;&amp;lt; endl;};&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff8c00&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; B1 b1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; B2 b2;&lt;BR&gt;};&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff8c00&gt;int main()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I i;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D d;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff8c00&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;//出力&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#ff8c00&gt;B1&lt;BR&gt;B2&lt;BR&gt;I&lt;BR&gt;~I&lt;BR&gt;~B2&lt;BR&gt;~B1&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff8c00&gt;B1&lt;BR&gt;B2&lt;BR&gt;D&lt;BR&gt;~D&lt;BR&gt;~B2&lt;BR&gt;~B1&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;継承の場合は、教科書どうりに&lt;/P&gt;
&lt;P&gt;基本クラスコンストラクタ&lt;BR&gt;派生クラスコンストラクタ&lt;BR&gt;派生クラスデストラクタ&lt;BR&gt;基本クラスデストラクタ&lt;/P&gt;
&lt;P&gt;の、順に動作しています。&lt;BR&gt;&lt;BR&gt;今回クラスの多重継承を用いましたが&lt;BR&gt;多重継承させた基本クラスの順序は&lt;/P&gt;
&lt;P&gt;class D:public B1, public B2&lt;/P&gt;
&lt;P&gt;上記のコードより、先に継承させてるB1の方が優先？されてるようです。&lt;/P&gt;
&lt;P&gt;イメージ的には、&lt;/P&gt;
&lt;P&gt;D* pd = new D(new B2(new B1()));&lt;BR&gt;delete B1( delete(B2 ( delete(D) ) ) );&lt;FONT color=#ff0000&gt;//修正（イメージ的にはこちらの表記ですね）&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;こんな感じですね。&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;　委譲の場合、純粋にコードの上から順番にメモリ確保されているようですが、&lt;BR&gt;これは、あくまでVC++の実装ですから、他の処理系ではどうなるか分かりません。&lt;BR&gt;まあ、して思いましたけど、あんまり意味ありませんね。&lt;BR&gt;これよりメンバ変数のメモリ確保はコードの上部から、行なわれることが分かりますが、&lt;BR&gt;それを前提にしたコードを書くべきではないでしょうね。&lt;BR&gt;（どうすれば、それを前提としたコードが書けるのか分かりませんが＾＾；）&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT size=4&gt;２、クラスが確保するメモリ領域について&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;次は、クラスの確保するメモリ領域について調べてみまっしょい。&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff8c00&gt;int main()&lt;BR&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff8c00&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I *pi = new I();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; pi &amp;lt;&amp;lt; endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; &amp;amp;(pi-&amp;gt;b1) &amp;lt;&amp;lt; endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; &amp;amp;(pi-&amp;gt;b2) &amp;lt;&amp;lt; endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete pi;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff8c00&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; D *pd = new D();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; pd &amp;lt;&amp;lt; endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; static_cast&amp;lt;B1*&amp;gt;(pd) &amp;lt;&amp;lt; endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; static_cast&amp;lt;B2*&amp;gt;(pd) &amp;lt;&amp;lt; endl;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete pd;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff8c00&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;//出力&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#ff8c00&gt;00343D98&lt;BR&gt;00343D98&lt;BR&gt;00343D99&lt;BR&gt;&lt;BR&gt;00343D98&lt;BR&gt;00343D98&lt;BR&gt;00343D99&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;継承の場合、B1のアドレスとDのアドレスが一致しています。&lt;BR&gt;単一継承の場合、このことより派生クラスから基本クラスのアドレスへと&lt;BR&gt;キャストする場合のコストがなくなります。&lt;BR&gt;&lt;BR&gt;class B&lt;BR&gt;{&lt;BR&gt;private:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int b1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int b2;&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;class D : public B&lt;BR&gt;{&lt;BR&gt;private:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int d1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int d2;&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;int main()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; D* pd = new D();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; B* pb = static_cast&amp;lt;B&amp;gt;(pd);&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;address&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value&lt;BR&gt;&lt;BR&gt;0x0000&amp;nbsp;&amp;nbsp;&amp;nbsp; *pb,*pd-&amp;gt;B::b1&lt;BR&gt;0x0004&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; B::b2&lt;BR&gt;0x0008&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D::d1&lt;BR&gt;0x000C&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D::d2&lt;BR&gt;&lt;BR&gt;上記のような構造です。&lt;BR&gt;派生クラスのメンバ変数は、基本クラスのメンバ変数の後に追加される様に、&lt;BR&gt;配置されています。派生クラスは基本クラスのメンバ変数にアクセスできますから、&lt;BR&gt;&lt;BR&gt;namespace B{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int b1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int b2;&lt;BR&gt;}&lt;BR&gt;namespace D{&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; using namespace&amp;nbsp;B;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int d1;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int d2;&lt;BR&gt;}&lt;BR&gt;namespace B{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Bの関数&lt;BR&gt;}&lt;BR&gt;namespace D{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Dの関数&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;こんな感じのイメージですかね。&lt;BR&gt;&lt;FONT color=#ff0000&gt;//注意、このあたり自分の勝手な解釈です。スコープの限定？が&lt;BR&gt;　　　　どのように実装されてるかコンパイラの知識は&lt;BR&gt;　　　　乏しいもので確実なことは分かりません。&lt;/FONT&gt;&lt;BR&gt;これだと、明示的なクラスDからの基底クラスBメンバ変数b1への&lt;BR&gt;&lt;BR&gt;pd-&amp;gt;B::b1&lt;BR&gt;&lt;BR&gt;と、上記のメモリ領域とおなじ感覚でアクセスできますね。&lt;BR&gt;ただ、基本クラス関数のオーバーロードは表現しづらい気もしますが。&lt;BR&gt;&lt;BR&gt;で、本題ですが、同時に単一継承は、メモリアドレス的に同一なので&lt;BR&gt;型情報の変更で完結します。&lt;BR&gt;この辺のシステムの単純さが、javaやC#で単一継承が用いられてる理由の一つでしょうか。&lt;BR&gt;もちろん多重継承の問題による理由もあるでしょうけど。&lt;BR&gt;派生クラスを基底クラスへとキャストを行なうと&lt;BR&gt;基底クラス型のサイズは８なのでアクセスは基底クラスメンバに限定されます。&lt;BR&gt;スコープもBに限定されるので、クラスDのメンバ変数、関数へのアクセスが出来なくなります。&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;委譲の場合は、先頭のメンバ変数がクラスのアドレスと一致しています。&lt;BR&gt;これは、クラスがメンバ変数にoffsetを使ってアクセスしているからです。&lt;BR&gt;C++の場合、クラスはCの構造体と同様に、メンバ変数のメモリ領域を順に&lt;BR&gt;取得していきます。&lt;/P&gt;
&lt;P&gt;struct S{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int j;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int k;&lt;BR&gt;};&lt;/P&gt;
&lt;P&gt;S *ps = new S();&lt;BR&gt;ps.i&amp;nbsp;&amp;nbsp;&amp;nbsp; //*(ps+0)&lt;BR&gt;ps.j&amp;nbsp;&amp;nbsp;&amp;nbsp; //*(ps+4)&lt;BR&gt;ps.k&amp;nbsp;&amp;nbsp;&amp;nbsp; //*(ps+8)&lt;/P&gt;
&lt;P&gt;上記のように、psの先頭アドレス＋オフセットでメンバ変数にアクセスします。&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;//もし、最後まで読んだ下さった方いましたら、ごめんなさい。&lt;BR&gt;//書いてて自分でもわかりづらいと、思います。&lt;BR&gt;//一寸後で、修正します。&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#4e4d45&gt;＜追記＞&lt;BR&gt;修正及び追加をしました。もう一度修正いるかな？&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://thespoke.net/aggbug.aspx?PostID=248703" width="1" height="1"&gt;</description></item><item><title>黒影さんの問題の考察</title><link>http://thespoke.net/blogs/kyara/archive/2005/07/20/248781.aspx</link><pubDate>Wed, 20 Jul 2005 16:45:00 GMT</pubDate><guid isPermaLink="false">b2b995b1-9c1d-4d25-9f9c-28d53840b74c:248781</guid><dc:creator>kyara</dc:creator><slash:comments>0</slash:comments><comments>http://thespoke.net/blogs/kyara/comments/248781.aspx</comments><wfw:commentRss>http://thespoke.net/blogs/kyara/commentrss.aspx?PostID=248781</wfw:commentRss><description>一先ず考察です。なぜなら、明日も早いので寝たいから、まだ解けてないけど&lt;BR&gt;考え方だけ。&lt;BR&gt;＜＜後、トラックバック一寸試してみようかなって＾＾：&lt;BR&gt;&lt;BR&gt;EF/a + G/b + H/c + I/d&lt;BR&gt;&lt;BR&gt;分子が大文字で、分母が小文字にしてます。&lt;BR&gt;これを変形して&lt;BR&gt;&lt;BR&gt;(EFbcd + Gacd + Habd + Iabc)/abcd&lt;BR&gt;&lt;BR&gt;EF/a + (Gcd + Hbd)/bcd + Ibc/bcd&lt;BR&gt;&lt;BR&gt;EF/a + (Gc + Hb)/bc + I/d&lt;BR&gt;&lt;BR&gt;に、なります。&lt;BR&gt;&lt;BR&gt;ここで、a = 1, E = 9は、まあ、宋だろうなって感じです。ので&lt;BR&gt;&lt;BR&gt;9F + (Gc + Hb)/bc + I/d&lt;BR&gt;&lt;BR&gt;ですね。＜そうだろうか？眠いので一寸確認しません＞&lt;BR&gt;&lt;BR&gt;これによって、dはIの約数が来ることが分かります。&lt;BR&gt;&lt;BR&gt;残りの数字は&lt;BR&gt;&lt;BR&gt;2, 3, 4, 5, 6, 7, 8&lt;BR&gt;これを&lt;BR&gt;2, 3, 2*2, 5, 2*3, 7, 2*2*2&lt;BR&gt;って感じで考えると、考えると、考えると、眠いので明日考えます。&lt;BR&gt;&lt;BR&gt;基本的に間違ってたら、教えてください。&lt;BR&gt;&lt;BR&gt;しかし、久しぶりに紙と鉛筆で頭使った。やっぱり数学は良いですね。&lt;BR&gt;頭の疲れが心地よい。&lt;BR&gt;&lt;BR&gt;それでは、お休みなさい。&lt;BR&gt;&lt;BR&gt;＜追記＞&lt;BR&gt;あ、トラックバック失敗してる。ってやり方間違ったかな？&lt;BR&gt;&lt;BR&gt;&lt;A target="_blank" href="/MyBlog/BlackShadow/MyBlog_Comments.aspx?ID=38707" target=_blank&gt;http://jp.thespoke.net/MyBlog/BlackShadow/MyBlog_Comments.aspx?ID=38707&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;下の問題はこちら、答えも詣でてるみたいですね。&lt;BR&gt;で、答えも見ちゃったから、もうあまり意味無いんですよねｗ&lt;BR&gt;まあ、解けるか考えてみます。&lt;BR&gt;&lt;BR&gt;上記で&lt;BR&gt;9F + (Gc + Hb)/bc + I/d&lt;BR&gt;と、&lt;BR&gt;2, 3, 4, 5, 6, 7, 8&lt;BR&gt;を、下記のように&lt;BR&gt;2, 3, 2*2, 5, 2*3, 7, 2*2*2&lt;BR&gt;考えようって所以降考えていってみます。&lt;BR&gt;&lt;BR&gt;ここで、Fは何でも入るので出来るだけ大きな数が残ってくれって感じです。&lt;BR&gt;ここで、5と7について考えてみます。&lt;BR&gt;&lt;BR&gt;上記に示しているように、残った数は5と７以外は全て、２と３の組み合わせであることが&lt;BR&gt;分かると思います。5と7が分母に来ることは無いだろうという仮定で、&lt;BR&gt;＜照明も考えては見ましたけど、難しい＞&lt;BR&gt;bcに５と７が来た時分母は３５になります。２と３の組み合わせで３５を表現することは&lt;BR&gt;無理ですし、&lt;BR&gt;ｄに５か７が来た時も、ｂｃで５や７になりえないので、この二つは分子に来ると考えて&lt;BR&gt;大丈夫だと思います。&lt;BR&gt;&lt;BR&gt;よって分母の候補は&lt;BR&gt;2,3,4,6,8&lt;BR&gt;の５つです。&lt;BR&gt;&lt;BR&gt;これより始めにｂｃに入る組み合わせとして&lt;BR&gt;2の倍数を考えてみます。ここでは、2,4,8がそれに当たります。で、小さい2,4で&lt;BR&gt;最初考えます。&lt;BR&gt;&lt;BR&gt;9F+(G+2H)/4+I/d&lt;BR&gt;&lt;BR&gt;に、なります。（めんどくさいのでチャッチャッと行きます。）&lt;BR&gt;&lt;BR&gt;G+2H = 4x(候補3,6,8でｄに3,6,8が来る場合3で、I　に６が来るでしょう)&lt;BR&gt;&lt;BR&gt;で残りの5,7,8の組み合わせで４の倍数にはならないので&lt;BR&gt;&lt;BR&gt;bc２の倍数ではないことが分かります。&lt;BR&gt;&lt;BR&gt;で、ｂｃに２と３が来た場合&lt;BR&gt;&lt;BR&gt;9F+(3G+2H)/6+I/d&lt;BR&gt;&lt;BR&gt;となります。こうなると、ｄに６が来るかなって感じです。３は素数なので３の素数を&lt;BR&gt;含んでいるのは３と６だけだからです。&lt;BR&gt;&lt;BR&gt;9F+(3G+2H)/6+I/6&lt;BR&gt;&lt;BR&gt;4,5,7,8が残り、&lt;BR&gt;&lt;BR&gt;3G+2H+I=6x&lt;BR&gt;&lt;BR&gt;を、4C3で２４通りですが、&lt;BR&gt;&lt;BR&gt;3*4+5*2+7=29が最小値になりますので、これ以上の６の倍数３０、６０、、、で&lt;BR&gt;&lt;BR&gt;３０を考えますと&lt;BR&gt;&lt;BR&gt;3G+2H+I=30&lt;BR&gt;&lt;BR&gt;Gに、４を考えた場合１２＋２H＋I＝３０は成り立ちません。&lt;BR&gt;Gに、５を考えた場合１５＋２H＋I＝３０はH＝４、I=7で成り立ちます。&lt;BR&gt;&lt;BR&gt;全部を代入すると、&lt;BR&gt;&lt;BR&gt;98/1+5/2+4/3+7/6&lt;BR&gt;&lt;BR&gt;まあ、答え知ってましたから、こんな感じでｗ、分かっていても疲れました。&lt;BR&gt;&lt;BR&gt;でも、これより大きな数が無いという証明は出来ませんでした。&lt;img src="http://thespoke.net/aggbug.aspx?PostID=248781" width="1" height="1"&gt;</description></item><item><title>ICPE,ICWFの用意しなければ＜デジカメは買ったぞ＞</title><link>http://thespoke.net/blogs/kyara/archive/2005/07/16/248578.aspx</link><pubDate>Sat, 16 Jul 2005 17:31:00 GMT</pubDate><guid isPermaLink="false">b2b995b1-9c1d-4d25-9f9c-28d53840b74c:248578</guid><dc:creator>kyara</dc:creator><slash:comments>0</slash:comments><comments>http://thespoke.net/blogs/kyara/comments/248578.aspx</comments><wfw:commentRss>http://thespoke.net/blogs/kyara/commentrss.aspx?PostID=248578</wfw:commentRss><description>って、訳でICPE、ICWFの用意何もしてません＞＜&lt;BR&gt;&lt;BR&gt;ってまあ、最初に休み貰わないとな、結構社会人だから行って良いんだろうって書き込み見ましたが、もろ私行くつもりでした＾＾；いや、招待されてるんだから良いでしょ。&lt;BR&gt;　っていうより、招待状が余ってるのでICPEの方、お友達誘おう思ってるんだが、&lt;BR&gt;こちらはいいのかな。まあ参加申し込みのメールで友達誘って良いんですか書いて&lt;BR&gt;なぜか２通招待状入っていたんだから、良いんだろうと思っておきます。&lt;BR&gt;･･････良いんですよね？＜まあ、その友達参加決定って訳じゃなんですけどね＞&lt;BR&gt;&lt;BR&gt;まあ、休みを貰わないとっとか、書いている時点で分かって貰えるかもしれませんが、&lt;BR&gt;交通機関と、宿泊先どうしよ？&lt;BR&gt;また、関西組みで一緒にってのあるんでしょうか？知ってたら教えてプリーズ。&lt;BR&gt;できれば、土曜くらいから言ってあっちブラブラしてても良いんだけど、&lt;BR&gt;問題は月曜のICWF終わった後の帰りです。次の日仕事だしね～。どうしようかね～。&lt;BR&gt;まあ、誰かにメッセで聞いときます。&lt;BR&gt;&lt;BR&gt;一先ず、用意したことといえば念願のデジカメ買いました。&lt;BR&gt;買ったのは「LUMIX　DMC-FZ5」４２K円くらいでした。&lt;BR&gt;薄型の「LUMIX　DMC-FX8」と迷いましたが、値段も似たようなので&lt;BR&gt;カメラカメラしたカメラを買いました。&lt;BR&gt;それにしても、安くなったとは言えお財布の中の五つ子の諭吉さんが全て&lt;BR&gt;ヨドバシカメラに貰われていきました；＿；&lt;BR&gt;財布の中身小銭だけ、悲しい。&lt;img src="http://thespoke.net/aggbug.aspx?PostID=248578" width="1" height="1"&gt;</description></item><item><title>久しぶりのメタセコイアでモデリング＜アニメーションつけよう思ったが＞</title><link>http://thespoke.net/blogs/kyara/archive/2005/07/14/242004.aspx</link><pubDate>Thu, 14 Jul 2005 17:46:00 GMT</pubDate><guid isPermaLink="false">b2b995b1-9c1d-4d25-9f9c-28d53840b74c:242004</guid><dc:creator>kyara</dc:creator><slash:comments>0</slash:comments><comments>http://thespoke.net/blogs/kyara/comments/242004.aspx</comments><wfw:commentRss>http://thespoke.net/blogs/kyara/commentrss.aspx?PostID=242004</wfw:commentRss><description>題名のとおり、久しぶりにモデリングしてみました。&lt;BR&gt;傘ですけど単純なオブジェクトですけど、疲れますね。これからテクスチャも有るのかと思うと...orz。&lt;BR&gt;&lt;BR&gt;＜傘をレンダリング（を削除）＞&lt;BR&gt;&lt;BR&gt;傘の骨って４６本で、良いんですかね？&lt;BR&gt;誰か知っています？&lt;BR&gt;&lt;BR&gt;＜修正＞&lt;BR&gt;大きさ１．９尺（直径１．１ｍ）骨目４８本らしいです。&lt;BR&gt;&lt;BR&gt;＜舞妓さん（を削除）＞&lt;BR&gt;ひとまず、作ったのはいいのですが、&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;なんでしょ。アニメ付けに使おう思ってたフリーソフトの設定が難しい。美味い動きが作れない...orz。&lt;BR&gt;間に合わね～。&lt;BR&gt;誰かいいソフト知っています？てゆうか、必要としてるなら自分で作ればいいのか...w&lt;BR&gt;って、まあ作れるよう勉強はしてるんですけどね。難しそうですからね、なかなか。&lt;BR&gt;&lt;BR&gt;う～ん、LightWave欲しいな＾＾&lt;img src="http://thespoke.net/aggbug.aspx?PostID=242004" width="1" height="1"&gt;</description></item><item><title>ICWFゲストのピーター･フランクルさんについて</title><link>http://thespoke.net/blogs/kyara/archive/2005/06/25/246860.aspx</link><pubDate>Sat, 25 Jun 2005 19:55:00 GMT</pubDate><guid isPermaLink="false">b2b995b1-9c1d-4d25-9f9c-28d53840b74c:246860</guid><dc:creator>kyara</dc:creator><slash:comments>0</slash:comments><comments>http://thespoke.net/blogs/kyara/comments/246860.aspx</comments><wfw:commentRss>http://thespoke.net/blogs/kyara/commentrss.aspx?PostID=246860</wfw:commentRss><description>ちょっと、近くの図書館に行った時、&lt;BR&gt;ICWFでのスペシャルゲストのピーターさんの書籍を発見。&lt;BR&gt;ICWF多分行く予定なので、参考に一寸他の本と借りてみました。&lt;BR&gt;&lt;BR&gt;「ピーター･フランクルの中学生でも分かる大学生にも解けない数学問題集」&lt;BR&gt;ってこの本、「エレガントな解答をもとむ」と同じにおいがします。&lt;BR&gt;エレガントは最初の数問読んだだけで、挫折しました；＿；。&lt;BR&gt;これは「大学への数学」のコラムをまとめた本みたいですけど。&lt;BR&gt;&lt;BR&gt;で、一寸だけプロフィールとか見て驚きです。&lt;BR&gt;&lt;BR&gt;要約「ハンガリー出身の数学者で、数学オリンピック（IMO）金メダリストで、１１か国語ペラペラ」&lt;BR&gt;&lt;BR&gt;マジですか＊ｗ＊&lt;BR&gt;凄い人だったんですね～っテ感じです。&lt;BR&gt;&lt;BR&gt;数学と英語は学校でモット勉強していればと思う今日この頃ですね。&lt;BR&gt;＜いいわけ＞決してなかったわけじゃないですけどね＾＾；&lt;BR&gt;&lt;BR&gt;それはともかく、図書館で借りた本読まないと。kのままでは一冊読めるか読めないか。&lt;BR&gt;＜またまたいいわけ＞仕事が忙しいんです。&lt;BR&gt;＜でも勉学の真理＞忙しいからとやらないことは、暇になってもやらないだろう&lt;BR&gt;&lt;BR&gt;ので、ICWFで皆さんに会えるのを楽しみに、頑張ってピーターさんの本読んでおきます。&lt;img src="http://thespoke.net/aggbug.aspx?PostID=246860" width="1" height="1"&gt;</description></item><item><title>そうだ、京都へ行こう</title><link>http://thespoke.net/blogs/kyara/archive/2005/06/19/246425.aspx</link><pubDate>Sun, 19 Jun 2005 07:15:00 GMT</pubDate><guid isPermaLink="false">b2b995b1-9c1d-4d25-9f9c-28d53840b74c:246425</guid><dc:creator>kyara</dc:creator><slash:comments>0</slash:comments><comments>http://thespoke.net/blogs/kyara/comments/246425.aspx</comments><wfw:commentRss>http://thespoke.net/blogs/kyara/commentrss.aspx?PostID=246425</wfw:commentRss><description>お久しぶりです。って、このフレーズも早二回目です。せめて週一くらいで、更新しないと忘れられちゃいますね。&lt;BR&gt;う～ん今ひそかにムーブの五月病かな～、いろいろやる気が起きない。&lt;BR&gt;&lt;BR&gt;タイトル道理、京都へ行ってきました。&lt;BR&gt;&lt;BR&gt;朝に会社に行くこうと、寝ぼけ眼でなんとなく下りの電車に乗ってみました。&lt;BR&gt;しかし、&lt;BR&gt;「なんだ、何か可笑しい」&lt;BR&gt;私の第六感がけたたましく鳴り出しました。&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#ff0000&gt;次の停車駅は「京都」のアナウンス、掲示板には「kyoto」の文字、目的地を、通り過ぎる無常の新快速、乗ってる皆さん明らかにくつろぎモード。&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#4e4d45&gt;私「うわぁ～、止まらんね～。」&lt;BR&gt;&lt;BR&gt;叫びはしませんでしたが、いきなり立ち上がった俺を不信がる乗客たち(はい、自意識過剰ですね)。私はおもむろに懐から携帯を取り出し（ちょっと怪しいですね）、上司に電話しようか迷ってました。結局しませんでしたけどね。&lt;BR&gt;&lt;BR&gt;うわ、京都駅内部しか京都は満喫できませんでした...TｗT。&lt;BR&gt;&lt;BR&gt;結論としては、新快速は早いですね。予定より２０分くらい遅れましたが、何とか会社には間に合いました。って２０分遅れてるやん...orz。&lt;BR&gt;&lt;/FONT&gt;&lt;img src="http://thespoke.net/aggbug.aspx?PostID=246425" width="1" height="1"&gt;</description></item><item><title>尼崎電車事故への献花に参加しませんか？＜プラス後日談＞</title><link>http://thespoke.net/blogs/kyara/archive/2005/05/23/243413.aspx</link><pubDate>Tue, 24 May 2005 01:21:00 GMT</pubDate><guid isPermaLink="false">b2b995b1-9c1d-4d25-9f9c-28d53840b74c:243413</guid><dc:creator>kyara</dc:creator><slash:comments>0</slash:comments><comments>http://thespoke.net/blogs/kyara/comments/243413.aspx</comments><wfw:commentRss>http://thespoke.net/blogs/kyara/commentrss.aspx?PostID=243413</wfw:commentRss><description>&lt;P&gt;詳しくは掲示板を参照してください。&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#008000&gt;/&lt;/FONT&gt;&lt;FONT color=#008000&gt;*&lt;BR&gt;っで、Light_squallさんと私で行こうと言うことになりました。&lt;BR&gt;きまってることは、今月中の土日、それだけ。&lt;BR&gt;&lt;BR&gt;ある程度人数集まるようならオフ会って話しも有るので興味のある方は&lt;BR&gt;Light_squallさんか私宛にご連絡ください。&lt;BR&gt;*/&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#008000&gt;/*&lt;BR&gt;&amp;lt;追記&amp;gt;&lt;BR&gt;希望者５人くらいは、集まりました。ただ日程によって半分になりそうです。&lt;BR&gt;*/&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#ff0000&gt;＜Light_squallさんのメールより一部抜粋＞&lt;BR&gt;&lt;BR&gt;で、この献花に東京より、Tatsuさんがおこしになります。&lt;BR&gt;なので、一緒に関西オフを開こうと思います。&lt;BR&gt;日時:5/21(土)　11:00&lt;BR&gt;集合場所:JR尼崎駅&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;っで、参加希望者は、&lt;A target="_blank" href="/MessageBoard/MessageBoard_ViewThread.aspx?postid=894" target=_blank&gt;こちらの掲示板&lt;/A&gt;でお願いします。&lt;BR&gt;&lt;BR&gt;＜参加者＞&lt;BR&gt;献花の参加者は、今のところ予定７名になったようです。&lt;BR&gt;詳しくは、Light_squallさんのブログで確認してください。&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#008000&gt;/*&lt;BR&gt;＜締め切り＞&lt;BR&gt;そろそろ、献花の参加者募集の締め切りが近づいています。&lt;BR&gt;参加しようと思っている方はお急ぎください。&lt;BR&gt;*/&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;締め切られました。最終の献花参加者は８名となりました。&lt;BR&gt;では、参加される方は明日お会いできることを楽しみにしております。&lt;BR&gt;&lt;BR&gt;＜後日談＞&lt;BR&gt;献花とオフ会お疲れ様でした。&lt;BR&gt;って、もう献花より日にち過ぎてますが、ちょっと、Spokeに弾かれサインイン出来ない状態でしたので、結局Cookie全部消して何とか復帰です。&lt;BR&gt;で、皆さん書かれてるのでもう書くことも無いですね＾＾；&lt;BR&gt;&lt;BR&gt;感想だけ一寸書くと、行って思ったことは、書かれてる人もいましたが、報道陣がまだ要ることに驚きましたし、その報道陣がこっちにやってきたことも驚きました。&lt;BR&gt;普段TVで彼らの取った映像を見ている人間としては、その仕事を批判する気はさらさら有りませんが、別に私らに話し聴きにこなくてもってのが率直な感想でした。&lt;BR&gt;事故現場もほんと普通って、感じでやはりTVの映像から受ける感じとは違ってました。事故現場はもうある程度片付けられて、電車に突っ込まれたマンションの方の引っ越しも進んでるようです。身内、あるいは知り合いを亡くされたような方が未だに追悼に来てらっしゃるようで、献花の花も絶えてませんでした。&lt;BR&gt;&lt;BR&gt;今回の事故で亡くなられた方のご冥福をお祈りします。&lt;BR&gt;&lt;BR&gt;一先ずここまで、つづく？&lt;BR&gt;&lt;BR&gt;&amp;lt;後日談その続き&amp;gt;&lt;BR&gt;&lt;BR&gt;ちょっとした小話。&lt;BR&gt;ホスト役の片翼＜って言うか、幹事だね＞のLight_squallさん尼崎の到着いきなり遅れる。&lt;BR&gt;　　　　＞＞電車が遅れてたらしい。&lt;BR&gt;&lt;BR&gt;待ち合わせ場所で、codekさんと合流。後で、メールを確認するとLight_squallさんよりメールがきてた。&lt;BR&gt;　　　　＞＞前のベンチにいるのがcodekさんだよと、、、&lt;BR&gt;&lt;BR&gt;尼崎からTatsuさんの車で移動。&lt;BR&gt;　　　　＞＞８人乗るのはつらいよ＊ｗ＊&lt;BR&gt;&lt;BR&gt;全体の感じ皆さん若いかたが、多かったので元気でした。まあ、技術系の話で盛り上がれたので楽しかったですね＾＾；&lt;/P&gt;&lt;img src="http://thespoke.net/aggbug.aspx?PostID=243413" width="1" height="1"&gt;</description></item><item><title>DXUTで、始める３Dプログラム（多分途中、おいおい充実、このまま終了も）</title><link>http://thespoke.net/blogs/kyara/archive/2005/05/20/243156.aspx</link><pubDate>Fri, 20 May 2005 19:12:00 GMT</pubDate><guid isPermaLink="false">b2b995b1-9c1d-4d25-9f9c-28d53840b74c:243156</guid><dc:creator>kyara</dc:creator><slash:comments>0</slash:comments><comments>http://thespoke.net/blogs/kyara/comments/243156.aspx</comments><wfw:commentRss>http://thespoke.net/blogs/kyara/commentrss.aspx?PostID=243156</wfw:commentRss><description>って、書いていますがまあ、何もしなくて終わる可能性が大きいです。&lt;BR&gt;私も、勉強中なので、話半分で。&lt;BR&gt;&lt;BR&gt;ちなみに私のDXSDKは一寸古い(Oct2004)ので最新環境と動作が違うかもしれません。あしからず。&lt;BR&gt;&lt;BR&gt;最初に、概要の説明をしますと、DXUTとはMSが提供している&lt;FONT color=#008000&gt;GLUT(*1)&lt;/FONT&gt;的なものです。&lt;BR&gt;ある程度、Win32APIがわからない人でもDXのプログラムが出来るように整えたライブラリです。ライブラリといってもソースファイルが一緒に添付されているので、どのようなことを書いているかは、ソースを覗けばいいだけです。&lt;BR&gt;&lt;BR&gt;これは、DXSDKのサンプルプログラムに使用されているので、サンプルのソースの覗いて見れば、大抵これを用いてサンプルプログラムが作られています。&lt;BR&gt;&lt;BR&gt;っで、これを用いた開発として以下の二つが考えられます。&lt;BR&gt;&lt;FONT color=#ff8c00&gt;＜&lt;FONT color=#008000&gt;EmptyProject(*2)&lt;/FONT&gt;をベースに開発＞&lt;BR&gt;＜ソースの一部を自作プルグラムに流用＞&lt;/FONT&gt;&lt;BR&gt;&lt;BR&gt;では、EmptyProjectの内容を空のWin32スケルトンプログラムにコピペしてみました。&lt;BR&gt;最初はまったく動かず、プロパティの整合を取っていけば、動くようになりました。&lt;BR&gt;プロジェクトとのプロパティを幾つか弄る必要があるようですね。&lt;BR&gt;以下に、今回行なった方法で、大きそうなところを書いていきます。&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#ff0000&gt;＜UniCode文字の使用＞&lt;/FONT&gt;&lt;BR&gt;これは、DXUTが使用を前提としているようです。&lt;BR&gt;&lt;FONT color=#ff0000&gt;＜プリコンパイル済みヘッダを使用しない＞&lt;/FONT&gt;&lt;BR&gt;よく解ってないので、チェックを外してコンパイルしたら何とか通りました。外さないと、ファイルはありませんと、エラーを吐かれて＾＾；&lt;BR&gt;&lt;FONT color=#ff0000&gt;＜DXUTSound関係を使わない＞&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000&gt;/*&lt;BR&gt;どうも、あるとリンクエラー関係が出るので、外しました。&lt;BR&gt;*/&lt;BR&gt;&lt;/FONT&gt;すみません。EmptyProjectでは、DXUTSound関係は使ってないので、外す以前に含めないようでした＾＾；&lt;BR&gt;&lt;BR&gt;あと、こまごましたところをDXSDKのサンプルコードのEmptyProjectと刷り合わせたら、コンパイルは通るようになりました。完全では有りませんけど。&lt;BR&gt;DXUTは部分部分で、流用しやすそうなのでDXUTをベースに書き直したほうが良いのかな？&lt;BR&gt;まあ、自分のプログラムでDXUTを使うのは初心者の私には一寸敷居が高そうかなって感じでした。&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#ff0000&gt;＜結論＞&lt;BR&gt;&lt;/FONT&gt;一先ず、Unicodeに対応させたプログラムを書けばDXUTのコードの流用はそれほど難しくないようです。&lt;BR&gt;&lt;BR&gt;次は実際流用していきたいですね。&lt;BR&gt;&lt;BR&gt;&lt;FONT color=#0000ff&gt;＜＜少しずつ充実させる予定＞＞&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#008000&gt;(*1)SGIのMark Kilgardによって作成されたOS依存部分の解消を目的としたOpenGLのライブラリ。&lt;BR&gt;(*2)DXSDKのサンプルコードのスケルトンプログラム。サンプルコードの一つとして添付されています。&lt;/FONT&gt;&lt;img src="http://thespoke.net/aggbug.aspx?PostID=243156" width="1" height="1"&gt;</description></item><item><title>VS2003蘇生</title><link>http://thespoke.net/blogs/kyara/archive/2005/05/17/243834.aspx</link><pubDate>Tue, 17 May 2005 17:33:00 GMT</pubDate><guid isPermaLink="false">b2b995b1-9c1d-4d25-9f9c-28d53840b74c:243834</guid><dc:creator>kyara</dc:creator><slash:comments>0</slash:comments><comments>http://thespoke.net/blogs/kyara/comments/243834.aspx</comments><wfw:commentRss>http://thespoke.net/blogs/kyara/commentrss.aspx?PostID=243834</wfw:commentRss><description>ちょっと、VS2003起動しようとすると何でしょ。起動できないじゃ、あ～りませんか！&lt;BR&gt;&lt;BR&gt;仕事忙しいのに、再インストールかよと、あきらめてインストールしてましたら、差分でも取ってるんでしょうか。１時間しないうちに、インストール終了＾＾。&lt;BR&gt;&lt;BR&gt;設定も生きているっぽく、SDKやライブラリの類、パスとかしなくて済んでよかったです。&lt;BR&gt;&lt;BR&gt;しかし、原因はと思っていると、この前感染したウイルスか...Orz。&lt;BR&gt;まあ、そうではないとは思いますが、そろそろOS入れなおしたほうがいいのかな。&lt;BR&gt;いっそのこと、新しいマシン買うとか。&lt;BR&gt;&lt;BR&gt;で、インストールしなおす時に、キーワードに色付けを付けるための、&lt;A target="_blank" href="http://www.thespoke.net/MySpace/GetFile.aspx?ID=1376" target=_blank&gt;usertype.dat&lt;/A&gt;退避させなきゃって、退避させたんですけど、結局は上記で述べたように必要なかったです。&lt;BR&gt;まあ、退避させたついでに、UPしときます。興味のある方は、使ってみてください。って、言うかモット良い奴誰か頂戴＾＾；&lt;BR&gt;著作権は放棄します。って、私も人様が作ったの弄って使わせてもらってるので＾＾&lt;BR&gt;&lt;BR&gt;一応、STL、DXUT＜一部＞、Boost＜一部＞の色付けをしてくれます。&lt;BR&gt;私が弄ってるところは、全て一部しか実装されてません...orz。時たま気づいたように増設してたので、多分まとまってもいません。&lt;BR&gt;&lt;BR&gt;まあ、モット使えるようにしていきたいですね。&lt;BR&gt;&lt;BR&gt;＜追記、usertype.datの使い方＞&lt;BR&gt;標準で、上記のファイルを&lt;FONT color=#ff0000&gt;\Microsoft Visual Studio .NET 2003\Common7\IDE\devenv.exe&lt;/FONT&gt;&lt;FONT color=#4e4d45&gt;と同じフォルダに入れるだけです。&lt;BR&gt;キーワードの追加もただのテキストファイルなので、メモ帳とかで、開いて追加するだけ。&lt;BR&gt;そうすると、入れる前の&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int&lt;/FONT&gt; main()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;//STL使用部分&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;std::vector&amp;lt;&lt;FONT color=#0000ff&gt;int&lt;/FONT&gt;&amp;gt; vec;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;FONT color=#0000ff&gt;return&lt;/FONT&gt; 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;の、ようなソースが&lt;BR&gt;&lt;FONT color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int&lt;/FONT&gt; main()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#008000&gt;//STL使用部分&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#ff0000&gt;std&lt;/FONT&gt;::&lt;FONT color=#ff0000&gt;vector&lt;/FONT&gt;&amp;lt;&lt;FONT color=#0000ff&gt;int&lt;/FONT&gt;&amp;gt; vec;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT color=#0000ff&gt;return&lt;/FONT&gt; 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;自分の指定したキーワードが赤で、色付けされます。&lt;BR&gt;ちょっと、便利です＾＾；&lt;/FONT&gt;&lt;img src="http://thespoke.net/aggbug.aspx?PostID=243834" width="1" height="1"&gt;</description></item></channel></rss>