<?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>The beast of halfpace</title><link>http://blogs.wankuma.com/andochin/</link><description>日々のメモ</description><managingEditor>あんどちん</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>あんどちん</dc:creator><title>templateの特殊化と型の切り替え</title><link>http://blogs.wankuma.com/andochin/archive/2008/08/28/154481.aspx</link><pubDate>Thu, 28 Aug 2008 00:54:00 GMT</pubDate><guid>http://blogs.wankuma.com/andochin/archive/2008/08/28/154481.aspx</guid><wfw:comment>http://blogs.wankuma.com/andochin/comments/154481.aspx</wfw:comment><comments>http://blogs.wankuma.com/andochin/archive/2008/08/28/154481.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.wankuma.com/andochin/comments/commentRss/154481.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/andochin/services/trackbacks/154481.aspx</trackback:ping><description>&lt;p&gt;&lt;a href="http://bbs.wankuma.com/index.cgi?mode=al2&amp;amp;namber=24045"&gt;元ネタ&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;仕事ではCばっかだし、最近C++ってあんまり触ってないなぁ。boost::call_traitsのソースを見たので横浜に向けてお勉強。&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="816" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="814"&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;#include &amp;lt;iostream&amp;gt;&lt;br&gt;#include &amp;lt;typeinfo&amp;gt;&lt;br&gt;#include &amp;lt;string&amp;gt;&lt;br&gt;#include &amp;lt;vector&amp;gt;&lt;br&gt;using namespace std; &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" color="#ff0000" size="1"&gt;//&lt;br&gt;// 渡された型のサイズで値と参照を切り替える&lt;br&gt;//&lt;br&gt;template&amp;lt;typename T, bool sw&amp;gt; struct type_switcher_helper { typedef const T type; };&lt;br&gt;template&amp;lt;typename T&amp;gt; struct type_switcher_helper&amp;lt;T, false&amp;gt; { typedef const T&amp;amp; type; };&lt;br&gt;template&amp;lt;typename T&amp;gt; struct type_switcher {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; typedef typename type_switcher_helper&amp;lt;T, sizeof(T) &amp;lt;= sizeof(void*)&amp;gt;::type type;&lt;br&gt;}; &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;//&lt;br&gt;// 型名を取得する&lt;br&gt;// 参照は値と判別できない名前を返すので特殊化する&lt;br&gt;//&lt;br&gt;template&amp;lt;typename T&amp;gt; struct get_type { static string name() { return string(typeid(T).name()); }};&lt;br&gt;template&amp;lt;typename T&amp;gt; struct get_type&amp;lt;T&amp;amp;&amp;gt; { static string name() { return string(typeid(T).name()) + string("&amp;amp;"); }};&lt;br&gt;//&lt;br&gt;template&amp;lt;typename T&amp;gt; void print_type_name() { cout &amp;lt;&amp;lt; get_type&amp;lt;T&amp;gt;::name() &amp;lt;&amp;lt; endl; } &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;//&lt;br&gt;// ポインタ判定&lt;br&gt;//&lt;br&gt;char is_pointer_helper(bool, const void* p);&lt;br&gt;int&amp;nbsp; is_pointer_helper(bool, ...); &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;// 関数によるポインタ判定&lt;br&gt;template&amp;lt;typename T&amp;gt; bool is_pointer_func(T a)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return sizeof(is_pointer_helper(true, a)) == sizeof(char);&lt;br&gt;} &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;template&amp;lt;typename T&amp;gt; struct is_pointer_st { enum { Kind = 0 }; };&lt;br&gt;template&amp;lt;typename T&amp;gt; struct is_pointer_st&amp;lt;T*&amp;gt; { enum { Kind = 1 }; }; &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;template&amp;lt;typename T&amp;gt; struct is_pointer_st&amp;lt;T* const&amp;gt; { enum { Kind = 1 }; }; &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;int main()&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; "--- Type name&amp;nbsp; ---" &amp;lt;&amp;lt; endl;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print_type_name&amp;lt;int&amp;gt;();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print_type_name&amp;lt;int*&amp;gt;();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print_type_name&amp;lt;int&amp;amp;&amp;gt;();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print_type_name&amp;lt;const int*&amp;gt;();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print_type_name&amp;lt;volatile int*&amp;gt;();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print_type_name&amp;lt;vector&amp;lt;int&amp;gt; &amp;gt;();&lt;br&gt;&lt;font color="#ff0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ここがcall_traits::param_typeと同じ事してるとこ&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print_type_name&amp;lt;type_switcher&amp;lt;int&amp;gt;::type &amp;gt;();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print_type_name&amp;lt;type_switcher&amp;lt;vector&amp;lt;int&amp;gt; &amp;gt;::type &amp;gt;(); &lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a = 0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int&amp;amp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = a; &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; "--- Type check by function ---" &amp;lt;&amp;lt; endl;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; (const char*) (is_pointer_func(a) ? "Pointer" : "Not pointer") &amp;lt;&amp;lt; endl;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; (const char*) (is_pointer_func(&amp;amp;a) ? "Pointer" : "Not pointer") &amp;lt;&amp;lt; endl;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; (const char*) (is_pointer_func(b) ? "Pointer" : "Not pointer") &amp;lt;&amp;lt; endl;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; (const char*) (is_pointer_func(&amp;amp;b) ? "Pointer" : "Not pointer") &amp;lt;&amp;lt; endl; &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; "--- Type check by struct ---" &amp;lt;&amp;lt; endl;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; (const char*) (is_pointer_st&amp;lt;int&amp;gt;::Kind ? "Pointer" : "Not pointer") &amp;lt;&amp;lt; endl;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; (const char*) (is_pointer_st&amp;lt;int*&amp;gt;::Kind ? "Pointer" : "Not pointer") &amp;lt;&amp;lt; endl;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cout &amp;lt;&amp;lt; (const char*) (is_pointer_st&amp;lt;int&amp;amp;&amp;gt;::Kind ? "Pointer" : "Not pointer") &amp;lt;&amp;lt; endl; &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;br&gt;}&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;出力結果は以下のとおり。&lt;/p&gt; &lt;p&gt;VS2008&lt;/p&gt; &lt;p&gt;&lt;font face="Tahoma" color="#004080" size="1"&gt;&lt;strong&gt;--- Type name ---&lt;br&gt;int&lt;br&gt;int *&lt;br&gt;int&amp;amp;&lt;br&gt;int const *&lt;br&gt;int volatile *&lt;br&gt;class std::vector&amp;lt;int,class std::allocator&amp;lt;int&amp;gt; &amp;gt;&lt;br&gt;int&lt;br&gt;class std::vector&amp;lt;int,class std::allocator&amp;lt;int&amp;gt; &amp;gt;&amp;amp; &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" color="#004080" size="1"&gt;&lt;strong&gt;--- Type check by function ---&lt;br&gt;Not pointer&lt;br&gt;Pointer&lt;br&gt;Not pointer&lt;br&gt;Pointer &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" color="#004080" size="1"&gt;&lt;strong&gt;--- Type check by struct ---&lt;br&gt;Not pointer&lt;br&gt;Pointer&lt;br&gt;Not pointer&lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Cygwin+GCC3.4.4&lt;/p&gt; &lt;p&gt;&lt;font face="Tahoma" color="#008000" size="1"&gt;&lt;strong&gt;--- Type name ---&lt;br&gt;i&lt;br&gt;Pi&lt;br&gt;i&amp;amp;&lt;br&gt;PKi&lt;br&gt;PVi&lt;br&gt;St6vectorIiSaIiEE&lt;br&gt;i&lt;br&gt;St6vectorIiSaIiEE&amp;amp; &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" color="#008000" size="1"&gt;&lt;strong&gt;--- Type check by function ---&lt;br&gt;Not pointer&lt;br&gt;Pointer&lt;br&gt;Not pointer&lt;br&gt;Pointer &lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" color="#008000" size="1"&gt;&lt;strong&gt;--- Type check by struct ---&lt;br&gt;Not pointer&lt;br&gt;Pointer&lt;br&gt;Not pointer&lt;/strong&gt;&lt;/font&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;VS2008のtypeid().nameの名前に感動。&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;これだけだと問題があって、long longやdoubleのようなvoid*よりも大きいサイズの型だと組込型でも参照になっちゃう。&lt;/p&gt; &lt;p&gt;call_traitsのソースを見ると、その辺も考慮してもっときちんと書いてあるけど、これくらいのプログラムでも知りたいこと知れたからこれ以上追及はしない（ってかできないです）。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/andochin/aggbug/154481.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>あんどちん</dc:creator><title>発掘３　～お勧め本～</title><link>http://blogs.wankuma.com/andochin/archive/2008/08/22/154007.aspx</link><pubDate>Fri, 22 Aug 2008 18:58:00 GMT</pubDate><guid>http://blogs.wankuma.com/andochin/archive/2008/08/22/154007.aspx</guid><wfw:comment>http://blogs.wankuma.com/andochin/comments/154007.aspx</wfw:comment><comments>http://blogs.wankuma.com/andochin/archive/2008/08/22/154007.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://blogs.wankuma.com/andochin/comments/commentRss/154007.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/andochin/services/trackbacks/154007.aspx</trackback:ping><description>&lt;p&gt;C++のお勧め本ですか。&lt;/p&gt; &lt;p&gt;こまったもんだ。オモイツカネ。&lt;/p&gt; &lt;p&gt;&lt;a href="http://andochin.wankuma.com/images/28c232247cfb_10AC3/epi_books.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="epi_books" src="http://andochin.wankuma.com/images/28c232247cfb_10AC3/epi_books_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;このあたりでどうでしょう？&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/andochin/aggbug/154007.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>あんどちん</dc:creator><title>発掘２　～何か足りない気がする～</title><link>http://blogs.wankuma.com/andochin/archive/2008/08/22/153918.aspx</link><pubDate>Fri, 22 Aug 2008 00:52:00 GMT</pubDate><guid>http://blogs.wankuma.com/andochin/archive/2008/08/22/153918.aspx</guid><wfw:comment>http://blogs.wankuma.com/andochin/comments/153918.aspx</wfw:comment><comments>http://blogs.wankuma.com/andochin/archive/2008/08/22/153918.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blogs.wankuma.com/andochin/comments/commentRss/153918.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/andochin/services/trackbacks/153918.aspx</trackback:ping><description>&lt;p&gt;倉庫のCDをゴソゴソと物色して取り敢えず持ち帰ったブツの一部。&lt;/p&gt; &lt;p&gt;&lt;a href="http://andochin.wankuma.com/images/d2226a3081b4_C49/yuzo_koshiro.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="yuzo_koshiro" src="http://andochin.wankuma.com/images/d2226a3081b4_C49/yuzo_koshiro_thumb.jpg" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;古代祐三のゲームミュージックCD。&lt;/p&gt; &lt;p&gt;他にもあったと思うんだけどなぁ&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/andochin/aggbug/153918.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>あんどちん</dc:creator><title>発掘</title><link>http://blogs.wankuma.com/andochin/archive/2008/08/20/153656.aspx</link><pubDate>Wed, 20 Aug 2008 13:35:00 GMT</pubDate><guid>http://blogs.wankuma.com/andochin/archive/2008/08/20/153656.aspx</guid><wfw:comment>http://blogs.wankuma.com/andochin/comments/153656.aspx</wfw:comment><comments>http://blogs.wankuma.com/andochin/archive/2008/08/20/153656.aspx#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://blogs.wankuma.com/andochin/comments/commentRss/153656.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/andochin/services/trackbacks/153656.aspx</trackback:ping><description>&lt;P&gt;倉庫に未だ眠っているシロモノ&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://andochin.wankuma.com/images/d881843c6587_BF0C/pyutaandogame6.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=184 alt=pyutaandogame6 src="http://andochin.wankuma.com/images/d881843c6587_BF0C/pyutaandogame6_thumb.jpg" width=244 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=center&gt;任天堂テレビゲーム６とぴゅう太。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;テレビゲーム６はファミコンよりも前に任天堂が出していたゲーム機。コントローラーは左右のダイアルで、ファミコン以降のマシンのようにケーブルorワイアレスで外付けになっているものではないので、プレイする二人の物理的な距離が縮まり親密度Up&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://andochin.wankuma.com/images/d881843c6587_BF0C/game6.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=184 alt=game6 src="http://andochin.wankuma.com/images/d881843c6587_BF0C/game6_thumb.jpg" width=244 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=center&gt;&lt;FONT color=#ff8000 size=1&gt;&lt;STRONG&gt;ACアダプター別売りが泣ける&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ぴゅう太はTOMYが出していたパソコン。斬新な日本BASICを搭載しており、N88-BASIC等他の英語BASICに慣れた人でもぴゅう太独自の日本語キーワードがわからないのでマニュアルレスでのプログラミングはほぼ不可能。&lt;/P&gt;
&lt;P align=center&gt;&lt;A href="http://andochin.wankuma.com/images/d881843c6587_BF0C/16bitgra.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=184 alt=16bitgra src="http://andochin.wankuma.com/images/d881843c6587_BF0C/16bitgra_thumb.jpg" width=244 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P align=center&gt;&lt;FONT color=#0080ff size=1&gt;&lt;STRONG&gt;エンブレムには誇らしげに16BIT GRAPHIC COMPUTERの文字&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;誰か欲しい人いるかな？&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/andochin/aggbug/153656.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>あんどちん</dc:creator><title>LTの為に</title><link>http://blogs.wankuma.com/andochin/archive/2008/08/18/153394.aspx</link><pubDate>Mon, 18 Aug 2008 18:50:00 GMT</pubDate><guid>http://blogs.wankuma.com/andochin/archive/2008/08/18/153394.aspx</guid><wfw:comment>http://blogs.wankuma.com/andochin/comments/153394.aspx</wfw:comment><comments>http://blogs.wankuma.com/andochin/archive/2008/08/18/153394.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blogs.wankuma.com/andochin/comments/commentRss/153394.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/andochin/services/trackbacks/153394.aspx</trackback:ping><description>&lt;p&gt;酒を探求中＠名古屋&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/andochin/aggbug/153394.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>あんどちん</dc:creator><title>C#とプリプロセッサー</title><link>http://blogs.wankuma.com/andochin/archive/2008/08/15/153173.aspx</link><pubDate>Fri, 15 Aug 2008 23:16:00 GMT</pubDate><guid>http://blogs.wankuma.com/andochin/archive/2008/08/15/153173.aspx</guid><wfw:comment>http://blogs.wankuma.com/andochin/comments/153173.aspx</wfw:comment><comments>http://blogs.wankuma.com/andochin/archive/2008/08/15/153173.aspx#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://blogs.wankuma.com/andochin/comments/commentRss/153173.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/andochin/services/trackbacks/153173.aspx</trackback:ping><description>&lt;p&gt; C#にはプリプロが無いからという話を聞くけど、普段C/C++を使っている身からすると無いのは不便。&lt;/p&gt; &lt;p&gt;こういうことはしちゃいけないんだろうか？ &lt;/p&gt; &lt;p align="center"&gt;&lt;font color="#ff0000" size="3"&gt;&lt;strong&gt;hello.cs&lt;/strong&gt;&lt;/font&gt;&lt;br&gt;&lt;/p&gt; &lt;hr&gt;  &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;using System; &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;#define HELLO "Hello, world!" &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;namespace Hello&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class SayHello&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; public static void Main(string[] args)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine(HELLO);&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;/font&gt; &lt;hr&gt;  &lt;p&gt; このプログラムをC/C++のコンパイラのプリプロセッサでプリプロセスし、C#のコンパイラでコンパイルすればC/C++と同様にプリプロセッサの恩恵を受けることが出来る。&lt;/p&gt; &lt;p&gt;つまり、&lt;/p&gt; &lt;p&gt;&lt;font color="#ff0000" size="2"&gt;&lt;strong&gt;&lt;em&gt;cl /EP hello.cs &amp;gt; hellow.cs&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#ff0000" size="2"&gt;&lt;strong&gt;&lt;em&gt;csc hellow.cs&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;とコンパイルし実行すれば&lt;/p&gt; &lt;p&gt;&lt;font color="#0080c0"&gt;&lt;em&gt;Hello, world!&lt;/em&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;と出力される。この方法は勿論Javaでも使用することが出来る。&lt;/p&gt; &lt;p&gt;このような事をしてはいけないんだろうか？&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font size="1"&gt;仕事ではダメと言われそうだけどw&lt;/font&gt;&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/andochin/aggbug/153173.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>あんどちん</dc:creator><title>Javaでセクタリード</title><link>http://blogs.wankuma.com/andochin/archive/2008/08/12/152814.aspx</link><pubDate>Tue, 12 Aug 2008 22:25:00 GMT</pubDate><guid>http://blogs.wankuma.com/andochin/archive/2008/08/12/152814.aspx</guid><wfw:comment>http://blogs.wankuma.com/andochin/comments/152814.aspx</wfw:comment><comments>http://blogs.wankuma.com/andochin/archive/2008/08/12/152814.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/andochin/comments/commentRss/152814.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/andochin/services/trackbacks/152814.aspx</trackback:ping><description>&lt;P&gt;&lt;A href="http://blogs.wankuma.com/andochin/archive/2008/03/27/130095.aspx"&gt;C&lt;/A&gt;/&lt;A href="http://blogs.wankuma.com/andochin/archive/2008/08/08/152221.aspx"&gt;C#&lt;/A&gt;でやってみたから今度はJavaで。 &lt;/P&gt;
&lt;P&gt;まず、読みだして1セクタ分の読み出しデータを表示するプログラムを作成。&lt;/P&gt;
&lt;P align=center&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;SectorRead.java &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;HR&gt;

&lt;P&gt;&lt;FONT face=Tahoma size=1&gt;public class SectorRead {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; static {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.loadLibrary("SectorRead");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public native int&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenDrive(int driveNumber);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public native byte[] ReadSector(int handle, int sector, int count);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public native void&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CloseDrive(int handle); &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String[] args) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SectorRead sr = new SectorRead();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int h = sr.OpenDrive(0);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] data = sr.ReadSector(h, 0, 1); &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(int i = 0; i &amp;lt; 512; i++) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.format("%02x ", data[i]);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(i % 16 == 15) {&lt;BR&gt;&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; System.out.print("\n");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/FONT&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sr.CloseDrive(h);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=1&gt;} &lt;/FONT&gt;
&lt;HR&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;上記Javaのソースコードを&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;FONT color=#ff0000 size=2&gt;javah -jni SectorRead.java&lt;/FONT&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;として下記SectorRead.hを作成する。&lt;/P&gt;
&lt;P align=center&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;SectorRead.h &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;HR&gt;

&lt;P&gt;&lt;FONT face=Tahoma size=1&gt;/* DO NOT EDIT THIS FILE - it is machine generated */&lt;BR&gt;#include &lt;JNI.H&gt;&lt;BR&gt;/* Header for class SectorRead */ &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=1&gt;#ifndef _Included_SectorRead&lt;BR&gt;#define _Included_SectorRead&lt;BR&gt;#ifdef __cplusplus&lt;BR&gt;extern "C" {&lt;BR&gt;#endif&lt;BR&gt;/*&lt;BR&gt;* Class:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SectorRead&lt;BR&gt;* Method:&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenDrive&lt;BR&gt;* Signature: (I)I&lt;BR&gt;*/&lt;BR&gt;JNIEXPORT jint JNICALL Java_SectorRead_OpenDrive&lt;BR&gt;&amp;nbsp; (JNIEnv *, jobject, jint); &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=1&gt;/*&lt;BR&gt;* Class:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SectorRead&lt;BR&gt;* Method:&amp;nbsp;&amp;nbsp;&amp;nbsp; ReadSector&lt;BR&gt;* Signature: (III)[B&lt;BR&gt;*/&lt;BR&gt;JNIEXPORT jbyteArray JNICALL Java_SectorRead_ReadSector&lt;BR&gt;&amp;nbsp; (JNIEnv *, jobject, jint, jint, jint); &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=1&gt;/*&lt;BR&gt;* Class:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SectorRead&lt;BR&gt;* Method:&amp;nbsp;&amp;nbsp;&amp;nbsp; CloseDrive&lt;BR&gt;* Signature: (I)V&lt;BR&gt;*/&lt;BR&gt;JNIEXPORT void JNICALL Java_SectorRead_CloseDrive&lt;BR&gt;&amp;nbsp; (JNIEnv *, jobject, jint); &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=1&gt;#ifdef __cplusplus&lt;BR&gt;}&lt;BR&gt;#endif&lt;BR&gt;#endif&lt;/FONT&gt; 
&lt;P&gt;
&lt;HR&gt;

&lt;P&gt;&lt;/P&gt;
&lt;P&gt;上記ヘッダを基に実装作成。&lt;/P&gt;
&lt;P align=center&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;SectorRead.cpp &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;HR&gt;

&lt;P&gt;&lt;FONT face=Tahoma size=1&gt;#include &lt;WINDOWS.H&gt;&lt;BR&gt;#include &lt;CSTDIO&gt;&lt;BR&gt;#include &lt;STRSTREAM&gt;&lt;BR&gt;#include &lt;IOSTREAM&gt;&lt;BR&gt;#include "SectorRead.h" &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=1&gt;/*&lt;BR&gt;* Class:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SectorRead&lt;BR&gt;* Method:&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenDrive&lt;BR&gt;* Signature: (I)I&lt;BR&gt;*/&lt;BR&gt;JNIEXPORT jint JNICALL Java_SectorRead_OpenDrive(JNIEnv * env, jobject obj, jint drive_number)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; std::strstream strs;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strs &amp;lt;&amp;lt; "\\\\.\\PHYSICALDRIVE" &amp;lt;&amp;lt; drive_number &amp;lt;&amp;lt; std::ends; &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HANDLE h = CreateFile(strs.str(),&lt;BR&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GENERIC_READ,&lt;BR&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE_SHARE_READ | FILE_SHARE_WRITE,&lt;BR&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL,&lt;BR&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OPEN_EXISTING,&lt;BR&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE_ATTRIBUTE_NORMAL,&lt;BR&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL); &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return reinterpret_cast&amp;lt;jint&amp;gt;&lt;JINT&gt;(h);&lt;BR&gt;} &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=1&gt;/*&lt;BR&gt;* Class:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SectorRead&lt;BR&gt;* Method:&amp;nbsp;&amp;nbsp;&amp;nbsp; ReadSector&lt;BR&gt;* Signature: (II)[B&lt;BR&gt;*/&lt;BR&gt;JNIEXPORT jbyteArray JNICALL Java_SectorRead_ReadSector(&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; JNIEnv * env,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; jobject obj,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; jint handle,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; jint sector,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; jint count)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DWORD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; size = count * 0x200;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; jbyteArray&amp;nbsp;&amp;nbsp;&amp;nbsp; buff = env-&amp;gt;NewByteArray(size);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; jbyte*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buff_ptr = env-&amp;gt;GetByteArrayElements(buff, NULL);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!buff_ptr) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return NULL;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HANDLE hFile = reinterpret_cast&amp;lt;HANDLE&amp;gt;&lt;HANDLE&gt;(handle);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DWORD&amp;nbsp; read_size = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ReadFile(hFile, buff_ptr, size, &amp;amp;read_size, NULL); &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; env-&amp;gt;ReleaseByteArrayElements(buff, buff_ptr, 0); &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return buff;&lt;BR&gt;} &lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=1&gt;/*&lt;BR&gt;* Class:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SectorRead&lt;BR&gt;* Method:&amp;nbsp;&amp;nbsp;&amp;nbsp; CloseDrive&lt;BR&gt;* Signature: (I)V&lt;BR&gt;*/&lt;BR&gt;JNIEXPORT void JNICALL Java_SectorRead_CloseDrive(JNIEnv * env, jobject obj, jint handle)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CloseHandle(reinterpret_cast&amp;lt;HANDLE&amp;gt;&lt;HANDLE&gt;(handle));&lt;BR&gt;} &lt;/FONT&gt;
&lt;P&gt;
&lt;HR&gt;

&lt;P&gt;&lt;/P&gt;
&lt;P&gt;このソースを下記のようにコンパイルしDLL作成。&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;STRONG&gt;&lt;EM&gt;cl /LD /EHsc /I"c:\Program Files\Java\jdk1.5.0_16\include" /I"c:\Program Files\Java\jdk1.5.0_16\include\win32" SectorRead.cpp&lt;/EM&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000 size=1&gt;&lt;STRONG&gt;※インクルードパスは環境に応じて設定&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;下記のようにして実行&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;&lt;FONT color=#ff0000 size=2&gt;java SectorRead&lt;/FONT&gt;&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;FONT face="Courier New" color=#ff8000 size=1&gt;
&lt;P&gt;
&lt;P align=center&gt;&lt;FONT color=#0000ff size=4&gt;&lt;STRONG&gt;実行結果&lt;/STRONG&gt;&lt;/FONT&gt; 
&lt;HR&gt;
&lt;FONT color=#000000&gt;33 c0 8e d0 bc 00 7c 8e c0 8e d8 be 00 7c bf 00&lt;BR&gt;06 b9 00 02 fc f3 a4 50 68 1c 06 cb fb b9 04 00&lt;BR&gt;bd be 07 80 7e 00 00 7c 0b 0f 85 10 01 83 c5 10&lt;BR&gt;e2 f1 cd 18 88 56 00 55 c6 46 11 05 c6 46 10 00&lt;BR&gt;b4 41 bb aa 55 cd 13 5d 72 0f 81 fb 55 aa 75 09&lt;BR&gt;f7 c1 01 00 74 03 fe 46 10 66 60 80 7e 10 00 74&lt;BR&gt;26 66 68 00 00 00 00 66 ff 76 08 68 00 00 68 00&lt;BR&gt;7c 68 01 00 68 10 00 b4 42 8a 56 00 8b f4 cd 13&lt;BR&gt;9f 83 c4 10 9e eb 14 b8 01 02 bb 00 7c 8a 56 00&lt;BR&gt;8a 76 01 8a 4e 02 8a 6e 03 cd 13 66 61 73 1e fe&lt;BR&gt;4e 11 0f 85 0c 00 80 7e 00 80 0f 84 8a 00 b2 80&lt;BR&gt;eb 82 55 32 e4 8a 56 00 cd 13 5d eb 9c 81 3e fe&lt;BR&gt;7d 55 aa 75 6e ff 76 00 e8 8a 00 0f 85 15 00 b0&lt;BR&gt;d1 e6 64 e8 7f 00 b0 df e6 60 e8 78 00 b0 ff e6&lt;BR&gt;64 e8 71 00 b8 00 bb cd 1a 66 23 c0 75 3b 66 81&lt;BR&gt;fb 54 43 50 41 75 32 81 f9 02 01 72 2c 66 68 07&lt;BR&gt;bb 00 00 66 68 00 02 00 00 66 68 08 00 00 00 66&lt;BR&gt;53 66 53 66 55 66 68 00 00 00 00 66 68 00 7c 00&lt;BR&gt;00 66 61 68 00 00 07 cd 1a 5a 32 f6 ea 00 7c 00&lt;BR&gt;00 cd 18 a0 b7 07 eb 08 a0 b6 07 eb 03 a0 b5 07&lt;BR&gt;32 e4 05 00 07 8b f0 ac 3c 00 74 fc bb 07 00 b4&lt;BR&gt;0e cd 10 eb f2 2b c9 e4 64 eb 00 24 02 e0 f8 24&lt;BR&gt;02 c3 49 6e 76 61 6c 69 64 20 70 61 72 74 69 74&lt;BR&gt;69 6f 6e 20 74 61 62 6c 65 00 45 72 72 6f 72 20&lt;BR&gt;6c 6f 61 64 69 6e 67 20 6f 70 65 72 61 74 69 6e&lt;BR&gt;67 20 73 79 73 74 65 6d 00 4d 69 73 73 69 6e 67&lt;BR&gt;20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65&lt;BR&gt;6d 00 00 00 00 62 7a 99 87 65 74 ff 00 00 80 20&lt;BR&gt;21 00 07 fe ff ff 00 08 00 00 00 d8 42 25 00 00&lt;BR&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;BR&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;BR&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff8000 size=1&gt; 
&lt;HR&gt;

&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;使い道ねぇ～&lt;/FONT&gt;&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/andochin/aggbug/152814.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>あんどちん</dc:creator><title>名古屋人、発見</title><link>http://blogs.wankuma.com/andochin/archive/2008/08/11/152515.aspx</link><pubDate>Mon, 11 Aug 2008 00:51:00 GMT</pubDate><guid>http://blogs.wankuma.com/andochin/archive/2008/08/11/152515.aspx</guid><wfw:comment>http://blogs.wankuma.com/andochin/comments/152515.aspx</wfw:comment><comments>http://blogs.wankuma.com/andochin/archive/2008/08/11/152515.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.wankuma.com/andochin/comments/commentRss/152515.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/andochin/services/trackbacks/152515.aspx</trackback:ping><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;&lt;strong&gt;&lt;font color="#008000"&gt;「当店では打ち粉に蕎麦粉を使用しておりますが…」&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;と説明を始めると、言い終わる前にそのおじさんが&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#ff8040"&gt;「俺、名古屋だから食べれる」&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;と面倒臭そうに一蹴。&lt;/p&gt; &lt;p&gt;でも、蕎麦アレルギーと出身地なんて関係ないし、そもそも顔を見ただけで出身地なんてわかりませんよね。&lt;br&gt;&lt;font color="#c0c0c0" size="1"&gt;&lt;em&gt;(Exception 大阪のおばちゃんは時折服装でわかる場合がある)&lt;/em&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;店員さんも可哀そうに…せめて「大丈夫ですよ」と言えばいいものを。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;しかし、思い出してみると&lt;font color="#8080c0" size="4"&gt;&lt;strong&gt;僕も数ヶ月前に同じ事をしているorz&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#0080ff" size="3"&gt;人の振り見て我が振り直せ&lt;/font&gt;&lt;/strong&gt;という諺が脳裏をよぎりました。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/andochin/aggbug/152515.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>あんどちん</dc:creator><title>C#でセクタリード</title><link>http://blogs.wankuma.com/andochin/archive/2008/08/08/152221.aspx</link><pubDate>Fri, 08 Aug 2008 00:03:00 GMT</pubDate><guid>http://blogs.wankuma.com/andochin/archive/2008/08/08/152221.aspx</guid><wfw:comment>http://blogs.wankuma.com/andochin/comments/152221.aspx</wfw:comment><comments>http://blogs.wankuma.com/andochin/archive/2008/08/08/152221.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.wankuma.com/andochin/comments/commentRss/152221.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/andochin/services/trackbacks/152221.aspx</trackback:ping><description>&lt;p&gt;最初に言い訳。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;C#ではコンソールにHello, World!を出したことがある程度の知識です。間違ってたら指摘してください。&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;とある掲示板でC#でHDDのセクタリードをするとは？という質問が出ていたのを見たので気になってやってみた。&lt;/p&gt; &lt;p&gt;ほぼ&lt;a href="http://blogs.wankuma.com/andochin/archive/2008/03/27/130095.aspx"&gt;ここ&lt;/a&gt;でやったことのC#版。ただし、MBRを読んでパーティションテーブルを取得した後パーティション1の先頭セクタを読んでいる。&lt;/p&gt; &lt;p&gt; &lt;hr&gt; &lt;/p&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;using System;&lt;br&gt;using System.Collections.Generic;&lt;br&gt;using System.Text;&lt;br&gt;using System.IO;&lt;br&gt;using System.Runtime.InteropServices; &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;namespace SectorReadSample&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class SectorRead&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; [DllImport("Kernel32.dll")]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static extern System.IntPtr CreateFile(System.Text.StringBuilder lpFileName,&lt;br&gt;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint dwDesiredAccess,&lt;br&gt;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint dwSharedMode,&lt;br&gt;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.IntPtr lpSecuriteAttributes,&lt;br&gt;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint dwCreationDisposition,&lt;br&gt;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint dwFlagsAndAttributes,&lt;br&gt;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.IntPtr hTemplateFile);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [DllImport("Kernel32.dll")]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsafe public static extern bool ReadFile(System.IntPtr hFile,&lt;br&gt;&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;&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;&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;&amp;nbsp; byte* lpBuffer,&lt;br&gt;&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;&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;&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;&amp;nbsp; uint nNumberOfBytesToRead,&lt;br&gt;&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;&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;&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;&amp;nbsp; uint* lpNumberOfBytesRead,&lt;br&gt;&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;&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;&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;&amp;nbsp; System.IntPtr lpOverlapped);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [DllImport("Kernel32.dll")]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsafe public static extern uint SetFilePointer(System.IntPtr hFile,&lt;br&gt;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint lDistanceToMove,&lt;br&gt;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint* lpDistanceToMoveHigh,&lt;br&gt;&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint dwMoveMethod); &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [DllImport("Kernel32.dll")]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static extern bool CloseHandle(System.IntPtr hFile); &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [StructLayout(LayoutKind.Sequential, Pack = 1)]&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsafe public struct PartitionTable&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public byte boot_flag;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public fixed byte start_chs[3]; // 開始CHS&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public byte type;&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; // パーティションの種類&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public fixed byte end_chs[3];&amp;nbsp;&amp;nbsp; // 終了CHS&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public uint start_lba;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 開始LBA&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public uint total_sector;&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; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SetFilePointer用 */&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public const uint FileBegin = 0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public const uint FileCurrent = 1;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public const uint FileEnd = 2; &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&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; private System.Text.StringBuilder deviceName;&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; private System.IntPtr hFile; &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&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; public SectorRead(string dn)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deviceName = new System.Text.StringBuilder(dn);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hFile = CreateFile(deviceName,&lt;br&gt;&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;&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; 0x80000000,&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; // GENERIC_READ&lt;br&gt;&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;&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; 0x00000001 | 0x00000002, // FILE_SHARE_READ | FILE_SHARE_WRITE&lt;br&gt;&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;&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; System.IntPtr.Zero,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // NULL&lt;br&gt;&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;&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; 3,&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // OPEN_EXISTING&lt;br&gt;&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;&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; 0x00000080,&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; // FILE_ATTRIBUTE_NORMAL&lt;br&gt;&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;&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; System.IntPtr.Zero);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // NULL&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&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; ~SectorRead()&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CloseHandle(hFile);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&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; unsafe public void ReadSector(uint sector, byte[] buff)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint len = 0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fixed(byte* p = &amp;amp;buff[0])&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetFilePointer(hFile, sector * 0x200, &amp;amp;len, FileBegin);&lt;br&gt;&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; ReadFile(hFile, p, 0x200, &amp;amp;len, IntPtr.Zero);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* パーティションテーブル情報取得 MBR(セクタ0)を渡す */&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsafe public PartitionTable ReadPartitionTable(byte[] buff, int part)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PartitionTable result = new PartitionTable();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fixed(byte* p = &amp;amp;buff[446]) {&lt;br&gt;&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; result = ((PartitionTable*)p)[part];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return result;&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;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class Program&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; static void Main(string[] args)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; byte[] buff = new byte[512];&amp;nbsp;&amp;nbsp;&amp;nbsp; // 1セクタ分のバッファ&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Cドライブをオープン&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SectorRead sr = new SectorRead("\\\\.\\PHYSICALDRIVE0");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 先頭セクタ(MBR)を読み出す。&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sr.ReadSector(0, buff);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // パーティション1の情報を取得&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SectorRead.PartitionTable p1 = sr.ReadPartitionTable(buff, 0);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // パーティション1の先頭1セクタを読み出す&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sr.ReadSector(p1.start_lba, buff); &lt;/font&gt; &lt;p&gt;&lt;font face="Tahoma" size="1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* パーティション1セクタ情報 */&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Partition Type:{0}", p1.type);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Start LBA:{0}", p1.start_lba);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Total Sector:{0}", p1.total_sector);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Partition1: {0:X2} {1:X2} {2:X2} {3:X2} {4:X2} {5:X2} {6:X2}",&lt;br&gt;&lt;/font&gt;&lt;font face="Tahoma" size="1"&gt;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buff[0], buff[1], buff[2], buff[3], buff[4], buff[5], buff[6]);&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;/font&gt;&lt;/p&gt; &lt;p&gt; &lt;hr&gt; &lt;/p&gt; &lt;p&gt;&lt;font color="#0080ff"&gt;&lt;strong&gt;実行結果&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;Partition Type:7 (NTFSは7)&lt;br&gt;Start LBA:2048 (先頭セクタ)&lt;br&gt;Total Sector:625137664(総セクタ数 ・1K=1000換算で約320GB)&lt;br&gt;Partition1: EB 52 90 4E 54 46 53 (文字にすると.R.NTFS)&lt;/font&gt; &lt;p&gt;どうやら正しくパーティションが読めているようです。&lt;/p&gt; &lt;p&gt;C#ならC++より簡単に作れると思ったけど、この手のことをするにはC++の方が楽みたい。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/andochin/aggbug/152221.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>あんどちん</dc:creator><title>EeePC 901にEeePC 900用のタッチパッドドライバを入れると</title><link>http://blogs.wankuma.com/andochin/archive/2008/08/07/152037.aspx</link><pubDate>Thu, 07 Aug 2008 01:43:00 GMT</pubDate><guid>http://blogs.wankuma.com/andochin/archive/2008/08/07/152037.aspx</guid><wfw:comment>http://blogs.wankuma.com/andochin/comments/152037.aspx</wfw:comment><comments>http://blogs.wankuma.com/andochin/archive/2008/08/07/152037.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/andochin/comments/commentRss/152037.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/andochin/services/trackbacks/152037.aspx</trackback:ping><description>&lt;p&gt;アップル製品のようにタッチパッドでマルチタッチが出来るようになります。&lt;/p&gt; &lt;p&gt;人差し指を固定してタッチしながら中指を上下に動かしてスクロールとか、2本の指を広げるように動かしてズームとか。&lt;/p&gt; &lt;p&gt;結構便利なのでユーザーの方は使ってみてはいかがでしょうか？&lt;/p&gt; &lt;p&gt;# ライセンス的にどうとか保障とかよくわからないけど。&lt;/p&gt; &lt;p&gt;EeePC 900用のタッチパッドドライバはASUSのGlobal Siteから取ってくることができます。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/andochin/aggbug/152037.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>