cstruct 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. data/doc/documents.html +572 -0
  2. data/doc/examples/anonymous_struct.rb.html +94 -0
  3. data/doc/examples/anonymous_union.rb.html +93 -0
  4. data/doc/examples/array_member.rb.html +79 -0
  5. data/doc/examples/file_io.rb.html +87 -0
  6. data/doc/examples/first_example.rb.html +104 -0
  7. data/doc/examples/get_system_info.rb.html +114 -0
  8. data/doc/examples/get_versionex.rb.html +97 -0
  9. data/doc/examples/global_memory.rb.html +102 -0
  10. data/doc/examples/inner_struct.rb.html +79 -0
  11. data/doc/examples/inner_union.rb.html +77 -0
  12. data/doc/examples/namespace.rb.html +80 -0
  13. data/doc/examples/show_processes.rb.html +95 -0
  14. data/doc/examples/struct_member.rb.html +128 -0
  15. data/doc/examples.html +42 -0
  16. data/doc/images/Thumbs.db +0 -0
  17. data/doc/images/examples.png +0 -0
  18. data/doc/images/excample1.png +0 -0
  19. data/doc/images/excample2.png +0 -0
  20. data/doc/images/green-point.png +0 -0
  21. data/doc/images/learnmore.png +0 -0
  22. data/doc/images/logo.png +0 -0
  23. data/doc/images/news.png +0 -0
  24. data/doc/images/point.png +0 -0
  25. data/doc/images/start.png +0 -0
  26. data/doc/images/synopsish.png +0 -0
  27. data/doc/index.html +149 -0
  28. data/doc/stylesheets/coderay.css +34 -0
  29. data/doc/stylesheets/ie.css +9 -0
  30. data/doc/stylesheets/style.css +216 -0
  31. data/examples/anonymous_struct.rb +43 -0
  32. data/examples/anonymous_union.rb +42 -0
  33. data/examples/array_member.rb +29 -0
  34. data/examples/file_io.rb +49 -0
  35. data/examples/first_example.rb +53 -0
  36. data/examples/inner_struct.rb +28 -0
  37. data/examples/inner_union.rb +26 -0
  38. data/examples/namespace.rb +29 -0
  39. data/examples/struct_member.rb +77 -0
  40. data/examples/win32/get_system_info.rb +64 -0
  41. data/examples/win32/get_versionex.rb +47 -0
  42. data/examples/win32/global_memory.rb +51 -0
  43. data/examples/win32/show_processes.rb +45 -0
  44. data/lib/cstruct.rb +523 -0
  45. data/lib/win32struct.rb +90 -0
  46. data/lib/win64struct.rb +13 -0
  47. metadata +109 -0
@@ -0,0 +1,128 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
3
+ <head profile="http://gmpg.org/xfn/11" >
4
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8">
5
+ <title>CStruct:Examples:Struct member</title>
6
+ <style type="text/css">
7
+
8
+ .CodeRay {
9
+ background-color: #232323;
10
+ border: 1px solid black;
11
+ font-family: 'Courier New', 'Terminal', monospace;
12
+ color: #E6E0DB;
13
+ padding: 3px 5px;
14
+ overflow: auto;
15
+ font-size: 12px;
16
+ margin: 12px 0;
17
+ }
18
+ .CodeRay pre {
19
+ margin: 0px;
20
+ padding: 0px;
21
+ }
22
+
23
+ .CodeRay .an { color:#E7BE69 }
24
+ .CodeRay .c { color:#BC9358; font-style: italic; }
25
+ .CodeRay .ch { color:#509E4F }
26
+ .CodeRay .cl { color:#FFF }
27
+ .CodeRay .co { color:#FFF }
28
+ .CodeRay .fl { color:#A4C260 }
29
+ .CodeRay .fu { color:#FFC56D }
30
+ .CodeRay .gv { color:#D0CFFE }
31
+ .CodeRay .i { color:#A4C260 }
32
+ .CodeRay .il { background:#151515 }
33
+ .CodeRay .iv { color:#D0CFFE }
34
+ .CodeRay .pp { color:#E7BE69 }
35
+ .CodeRay .r { color:#CB7832 }
36
+ .CodeRay .rx { color:#A4C260 }
37
+ .CodeRay .s { color:#A4C260 }
38
+ .CodeRay .sy { color:#6C9CBD }
39
+ .CodeRay .ta { color:#E7BE69 }
40
+ .CodeRay .pc { color:#6C9CBD }
41
+
42
+ </style>
43
+ </head>
44
+ <body>
45
+ <div style="margin-left:auto;margin-right:auto;width:800px;">
46
+ <div class="CodeRay">
47
+ <div class="code"><pre><span class="c"># CStruct Examples</span>
48
+ require <span class="s"><span class="dl">'</span><span class="k">cstruct</span><span class="dl">'</span></span>
49
+
50
+ <span class="c"># example:</span>
51
+ <span class="c"># struct Point in C\C++ (32-bit platform): </span>
52
+ <span class="c">#</span>
53
+ <span class="c"># struct Point</span>
54
+ <span class="c"># {</span>
55
+ <span class="c"># int x;</span>
56
+ <span class="c"># int y;</span>
57
+ <span class="c"># }; </span>
58
+ <span class="c">#</span>
59
+ <span class="c"># struct Line in C\C++ (32-bit platform): </span>
60
+ <span class="c">#</span>
61
+ <span class="c"># struct Line</span>
62
+ <span class="c"># {</span>
63
+ <span class="c"># Point begin_point;</span>
64
+ <span class="c"># Point end_point;</span>
65
+ <span class="c"># }; </span>
66
+
67
+ <span class="c"># struct TwoLine in C\C++ (32-bit platform): </span>
68
+ <span class="c">#</span>
69
+ <span class="c"># struct TwoLine</span>
70
+ <span class="c"># {</span>
71
+ <span class="c"># Line lines[2];</span>
72
+ <span class="c"># }; </span>
73
+
74
+
75
+
76
+ <span class="c"># struct Point , Line and TwoLine in Ruby: </span>
77
+ <span class="r">class</span> <span class="cl">Point</span> &lt; <span class="co">CStruct</span>
78
+ int32<span class="sy">:x</span>
79
+ int32<span class="sy">:y</span>
80
+ <span class="r">end</span>
81
+
82
+ <span class="r">class</span> <span class="cl">Line</span> &lt; <span class="co">CStruct</span>
83
+ <span class="co">Point</span><span class="sy">:begin_point</span>
84
+ <span class="co">Point</span><span class="sy">:end_point</span>
85
+ <span class="r">end</span>
86
+
87
+ <span class="r">class</span> <span class="cl">TwoLine</span> &lt; <span class="co">CStruct</span>
88
+ <span class="co">Line</span><span class="sy">:lines</span>,[<span class="i">2</span>]
89
+ <span class="r">end</span>
90
+
91
+
92
+ line = <span class="co">Line</span>.new
93
+
94
+ <span class="c"># assign like as C language</span>
95
+ line.begin_point.x = <span class="i">0</span>
96
+ line.begin_point.y = <span class="i">0</span>
97
+ line.end_point.x = <span class="i">20</span>
98
+ line.end_point.y = <span class="i">30</span>
99
+
100
+
101
+ puts <span class="s"><span class="dl">&quot;</span><span class="k">sizeof(Line) = </span><span class="il"><span class="idl">#{</span><span class="co">Line</span>.__size__<span class="idl">}</span></span><span class="dl">&quot;</span></span> <span class="c"># &quot;__size__&quot; is alias of &quot;size&quot;</span>
102
+ puts <span class="s"><span class="dl">&quot;</span><span class="k">line.begin_point.x = </span><span class="il"><span class="idl">#{</span>line.begin_point.x<span class="idl">}</span></span><span class="dl">&quot;</span></span>
103
+ puts <span class="s"><span class="dl">&quot;</span><span class="k">line.begin_point.y = </span><span class="il"><span class="idl">#{</span>line.begin_point.y<span class="idl">}</span></span><span class="dl">&quot;</span></span>
104
+ puts <span class="s"><span class="dl">&quot;</span><span class="k">line.end_point.x = </span><span class="il"><span class="idl">#{</span>line.end_point.x<span class="idl">}</span></span><span class="dl">&quot;</span></span>
105
+ puts <span class="s"><span class="dl">&quot;</span><span class="k">line.end_point.y = </span><span class="il"><span class="idl">#{</span>line.end_point.y<span class="idl">}</span></span><span class="dl">&quot;</span></span>
106
+
107
+ two_line = <span class="co">TwoLine</span>.new
108
+
109
+ <span class="c"># assign like as C language</span>
110
+ two_line.lines[<span class="i">0</span>].begin_point.x = <span class="i">6</span>
111
+ two_line.lines[<span class="i">0</span>].begin_point.y = <span class="i">16</span>
112
+ two_line.lines[<span class="i">0</span>].end_point.x = <span class="i">26</span>
113
+ two_line.lines[<span class="i">0</span>].end_point.y = <span class="i">36</span>
114
+
115
+ two_line.lines[<span class="i">1</span>].begin_point.x = <span class="i">6</span>
116
+ two_line.lines[<span class="i">1</span>].begin_point.y = <span class="i">16</span>
117
+ two_line.lines[<span class="i">1</span>].end_point.x = <span class="i">26</span>
118
+ two_line.lines[<span class="i">1</span>].end_point.y = <span class="i">36</span>
119
+
120
+
121
+
122
+
123
+
124
+ </pre></div>
125
+ </div>
126
+
127
+ </div>
128
+ </body>
data/doc/examples.html ADDED
@@ -0,0 +1,42 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
3
+ <head profile="http://gmpg.org/xfn/11">
4
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8">
5
+ <title>CStruct:Examples</title>
6
+ <link rel="stylesheet" href="stylesheets/style.css" type="text/css" media="screen" />
7
+ <link rel="stylesheet" href="stylesheets/coderay.css" type="text/css" media="screen" />
8
+ </head>
9
+ <body id="examples" onload="">
10
+ <div id ="container">
11
+ <br /> <!-- ----------new line-------------- -->
12
+ <h1>CStruct Examples</h1>
13
+ <div style="border:1px solid black;"></div>
14
+ <br /> <!-- ----------new line-------------- -->
15
+ <div id='example_menu'>
16
+ <ul class="level1">
17
+ <li><a href ="examples/first_example.rb.html" target="_blank">First sample</a></li>
18
+ <li><a href ="examples/array_member.rb.html" target="_blank">Array member</a></li>
19
+ <li><a href ="examples/struct_member.rb.html" target="_blank">Struct member</a></li>
20
+ <li><a href ="examples/inner_struct.rb.html" target="_blank">Inner struct</a></li>
21
+ <li><a href ="examples/inner_union.rb.html" target="_blank">Inner union</a></li>
22
+ <li><a href ="examples/anonymous_struct.rb.html" target="_blank">Anonymous struct</a></li>
23
+ <li><a href ="examples/anonymous_union.rb.html" target="_blank">Anonymous union</a></li>
24
+ <li><a href ="examples/file_io.rb.html" target="_blank">File IO</a></li>
25
+ <li><a href ="examples/namespace.rb.html" target="_blank">Namespace</a></li>
26
+ <li>Win32Struct</li>
27
+ </ul>
28
+ <div id='example_menu2' >
29
+ <ul class="level1" style="margin-left:30px;" target="_blank">
30
+ <li><a href ="examples/get_versionex.rb.html" target="_blank">GetVersionExA</a></li>
31
+ <li><a href ="examples/get_system_info.rb.html" target="_blank">GetSystemInfo</a></li>
32
+ <li><a href ="examples/global_memory.rb.html" target="_blank">GlobalMemoryStatus</a></li>
33
+ <li><a href ="examples/show_processes.rb.html" target="_blank">Show All Processes</a></li>
34
+ </ul>
35
+ </div>
36
+ </ul>
37
+ </div>
38
+ <br /> <!-- ----------new line-------------- -->
39
+ <div style="border:1px solid black;"></div>
40
+ Back to <a href ="index.html"><b>Home</b></a>
41
+ </div>
42
+ </body>
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
data/doc/index.html ADDED
@@ -0,0 +1,149 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
3
+ <head profile="http://gmpg.org/xfn/11">
4
+ <meta http-equiv="Content-Type" content="text/html" charset=UTF-8 />
5
+ <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
6
+ <title>CStruct:Home</title>
7
+ <link rel="stylesheet" href="stylesheets/style.css" type="text/css" media="screen" />
8
+ <link rel="stylesheet" href="stylesheets/coderay.css" type="text/css" media="screen" />
9
+ <!--[if IE]>
10
+ <link rel="stylesheet" href="/stylesheets/ie.css" type="text/css" media="screen" />
11
+ <![endif]-->
12
+ </head>
13
+
14
+ <body >
15
+ <div>
16
+ <div id ="container">
17
+ <div id="logo"> </div>
18
+
19
+ <div id="menu">
20
+ <ul class="navi">
21
+ <li><a href ="index.html">Home</a></li>
22
+ <li><a href ="documents.html">Documents</a></li>
23
+ <li><a href ="examples.html">Examples</a></li>
24
+ <li><a href ="http://rubyforge.org/projects/cstruct/" target="_blank">Download</a></li>
25
+ </ul>
26
+ </div>
27
+ <div id="connent">
28
+ <p class ="blank_line"> </p>
29
+ <div>
30
+ <h2 class="bk_h2 bk_h2_news">News</h2>
31
+ <p>CStruct 1.0.0 has released!</p>
32
+ </div>
33
+
34
+ <div class ="blank_line"></div>
35
+ <div>
36
+ <h2 class ="bk_h2 bk_h2_synopsish">Synopsis</h2>
37
+ <p>
38
+ CStruct is a simulation of the C language's struct.Its main purpose is to manipulate binary-data conveniently. It can be used in:<br />
39
+ &nbsp;&nbsp;1. Binary file IO like C.<br />
40
+ &nbsp;&nbsp;2. The parameter of the OS's API.(e.g. Win32)<br />
41
+ &nbsp;&nbsp;3. Other... <br />
42
+ </p>
43
+ </div>
44
+
45
+ <div class ="blank_line"></div>
46
+ <div>
47
+ <h2 class ="bk_h2 bk_h2_start">Getting Started</h2>
48
+ <div>
49
+ <h3>Install CStruct</h3>
50
+ <p>
51
+ Install CStruct is easy.
52
+ <div class="CodeRay">
53
+ <div class="code">gem install cstruct<br/></div>
54
+ </div>
55
+ </p>
56
+ </div>
57
+
58
+ <div>
59
+ <h3>Using CStruct</h3>
60
+ <p>
61
+ Let's see an example,struct <b>Point</b> in C language(32-bit platform) like this:
62
+ <div class="CodeRay">
63
+ <div class="code"><span class="r">struct</span> Point<br/>
64
+ {<br/>
65
+ <span class="pt">&nbsp;&nbsp; int</span> x;<br/>
66
+ <span class="pt">&nbsp;&nbsp; int</span> y;<br/>
67
+ };
68
+ </div>
69
+ </div>
70
+ How to represent struct <b>Point</b> in Ruby? You can use CStruct to do it.
71
+ <div class="CodeRay">
72
+ <div class="code"><span class="r">class</span> <span class="cl">Point</span> &lt; <span class="co">CStruct</span><br/>
73
+ &nbsp;&nbsp; int32<span class="sy">:x</span><br/>
74
+ &nbsp;&nbsp; int32<span class="sy">:y</span><br/>
75
+ <span class="r">end</span>
76
+ </div>
77
+ </div>
78
+ Example:
79
+ <div class="CodeRay">
80
+ <div class="code">require <span class="s"><span class="dl">'</span><span class="k">cstruct</span><span class="dl">'</span></span><br/>
81
+
82
+ <span class="c"># struct Point in Ruby: </span><br/>
83
+ <span class="r">class</span> <span class="cl">Point</span> &lt; <span class="co">CStruct</span><br/>
84
+ &nbsp;&nbsp; int32<span class="sy">:x</span><br/>
85
+ &nbsp;&nbsp; int32<span class="sy">:y</span> <br/>
86
+ <span class="r">end</span><br/>
87
+ <br/>
88
+ <span class="c"># create a Point's instance</span><br/>
89
+ point = <span class="co">Point</span>.new<br/>
90
+ <br/>
91
+ <span class="c"># assign like as C language</span><br/>
92
+ point.x = <span class="i">10</span><br/>
93
+ point.y = <span class="i">20</span><br/>
94
+ puts <span class="s">"point.x = #{point.x},point.y = #{point.y}"</span><br/>
95
+ <br/>
96
+ </div>
97
+ </div>
98
+ </p>
99
+ </div>
100
+
101
+ <div>
102
+ <h3>Using Win32Struct</h3>
103
+ <p>
104
+ like this:
105
+ <div class="CodeRay">
106
+ <div class="code"><span class="r">typedef</span> <span class="r">struct</span> _OSVERSIONINFOEXA { <br/>
107
+ &nbsp;&nbsp; DWORD dwOSVersionInfoSize;<br/>
108
+ &nbsp;&nbsp; DWORD dwMajorVersion;<br/>
109
+ &nbsp;&nbsp; DWORD dwMinorVersion;<br/>
110
+ &nbsp;&nbsp; DWORD dwBuildNumber;<br/>
111
+ &nbsp;&nbsp; DWORD dwPlatformId;<br/>
112
+ &nbsp;&nbsp; CHAR szCSDVersion[ <span class="i">128</span> ];<br/>
113
+ &nbsp;&nbsp; WORD wServicePackMajor;<br/>
114
+ &nbsp;&nbsp; WORD wReserved[<span class="i">2</span>];<br/>
115
+ } OSVERSIONINFOEXA;<br/>
116
+ </div>
117
+ </div>
118
+ in ruby:
119
+ <div class="CodeRay">
120
+ <div class="code"><span class="r">class</span> <span class="cl">OSVERSIONINFOEXA</span> &lt; <span class="co">Win32Struct</span><br/>
121
+ &nbsp;&nbsp; <span class="co">DWORD</span> <span class="sy">:dwOSVersionInfoSize</span><br/>
122
+ &nbsp;&nbsp; <span class="co">DWORD</span> <span class="sy">:dwMajorVersion</span><br/>
123
+ &nbsp;&nbsp; <span class="co">DWORD</span> <span class="sy">:dwMinorVersion</span><br/>
124
+ &nbsp;&nbsp; <span class="co">DWORD</span> <span class="sy">:dwBuildNumber</span><br/>
125
+ &nbsp;&nbsp; <span class="co">DWORD</span> <span class="sy">:dwPlatformId</span><br/>
126
+ &nbsp;&nbsp; <span class="co">CHAR</span> <span class="sy">:szCSDVersion</span>,[ <span class="i">128</span> ]<br/>
127
+ &nbsp;&nbsp; <span class="co">WORD</span> <span class="sy">:wServicePackMajor</span><br/>
128
+ &nbsp;&nbsp; <span class="co">WORD</span> <span class="sy">:wServicePackMinor</span><br/>
129
+ &nbsp;&nbsp; <span class="co">WORD</span> <span class="sy">:wReserved</span>,[<span class="i">2</span>]<br/>
130
+ <span class="r">end</span><br/>
131
+ </div>
132
+ </div>
133
+ </p>
134
+ </div>
135
+ </div>
136
+
137
+ <div class ="blank_line"></div>
138
+ <div>
139
+ <h2 class ="bk_h2 bk_h2_learnmore">Lean More</h2>
140
+ Please see also <a href="documents.html">Documents</a> and <a href="examples.html">Examples</a>.
141
+ </div>
142
+ </div>
143
+
144
+ <div id="footer" style="height:30px">
145
+
146
+ </div>
147
+ </div>
148
+ </div>
149
+ </body>
@@ -0,0 +1,34 @@
1
+ .CodeRay {
2
+ background-color: #232323;
3
+ border: 1px solid black;
4
+ font-family: 'Courier New', 'Terminal', monospace;
5
+ color: #E6E0DB;
6
+ padding: 3px 5px;
7
+ overflow: auto;
8
+ font-size: 12px;
9
+ margin: 2px 0;
10
+ margin-bottom:5px;
11
+ }
12
+ .CodeRay pre {
13
+ margin: 0px;
14
+ padding: 0px;
15
+ }
16
+
17
+ .CodeRay .an { color:#E7BE69 } /* html attribute */
18
+ .CodeRay .c { color:#BC9358; font-style: italic; } /* comment */
19
+ .CodeRay .ch { color:#509E4F } /* escaped character */
20
+ .CodeRay .cl { color:#FFF } /* class */
21
+ .CodeRay .co { color:#FFF } /* constant */
22
+ .CodeRay .fl { color:#A4C260 } /* float */
23
+ .CodeRay .fu { color:#FFC56D } /* function */
24
+ .CodeRay .gv { color:#D0CFFE } /* global variable */
25
+ .CodeRay .i { color:#A4C260 } /* integer */
26
+ .CodeRay .il { background:#151515 } /* inline code */
27
+ .CodeRay .iv { color:#D0CFFE } /* instance variable */
28
+ .CodeRay .pp { color:#E7BE69 } /* doctype */
29
+ .CodeRay .r { color:#CB7832 } /* keyword */
30
+ .CodeRay .rx { color:#A4C260 } /* regex */
31
+ .CodeRay .s { color:#A4C260 } /* string */
32
+ .CodeRay .sy { color:#6C9CBD } /* symbol */
33
+ .CodeRay .ta { color:#E7BE69 } /* html tag */
34
+ .CodeRay .pc { color:#6C9CBD } /* boolean */
@@ -0,0 +1,9 @@
1
+ pre {
2
+ word-wrap:break-word; /* Internet Explorer 5.5+ */
3
+ }
4
+ a span,
5
+ #submitbox #submit,
6
+ #searchbox .button,
7
+ #subscribe li a {
8
+ cursor:hand;
9
+ }
@@ -0,0 +1,216 @@
1
+
2
+ body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,blockquote,p,fieldset {
3
+ margin:0;
4
+ padding:0;
5
+ }
6
+
7
+ body {
8
+ /*background:#BEC3C6 url(../images/bg.jpg) repeat-x;*/
9
+ /*color:#000;*/
10
+ /*font-family:Verdana,"BitStream vera Sans",Tahoma,Helvetica,Sans-serif;*/
11
+ font-family:"Helvetica Neue",Helvetica,Tahoma,sans-serif;
12
+ /* font-size:12px; */
13
+ /* color:#002B59;*/
14
+ background-color:#EFEFEF;
15
+ }
16
+ table {
17
+ margin-top: 5px;
18
+ border:2px solid #002B59;
19
+ border-collapse:collapse;
20
+ }
21
+
22
+ tr.def {
23
+ padding-top: 2px;
24
+ padding-bottom: 2px;
25
+ }
26
+ tr.def td{
27
+ color:#000;
28
+ border: solid #A9B3CD;
29
+ border-width: 1px 1px 1px 1px;
30
+ width:200px;
31
+ }
32
+ tr.def th{
33
+ color:#ffffff;
34
+ background-color: #002B59;
35
+ border: solid #A9B3CD;
36
+ border-width: 1px 1px 1px 1px;
37
+ width:200px;
38
+ }
39
+
40
+ tr.code {
41
+ margin:0;
42
+ padding:0;
43
+ }
44
+ tr.code td{
45
+ color:#000;
46
+ background-color: #232323;
47
+ border: solid #A9B3CD;
48
+ border-width: 1px 1px 1px 1px;
49
+ width:200px;
50
+ }
51
+ tr.code th{
52
+ color:#ffffff;
53
+ background-color: #002B59;
54
+ border: solid #A9B3CD;
55
+ border-width: 1px 1px 1px 1px;
56
+ width:200px;
57
+ }
58
+
59
+
60
+
61
+
62
+ h1, h2, h3, h4, h5, h6 {
63
+ font-weight:bold;
64
+ letter-spacing:-0.05em;
65
+ /* font-family:Arial;*/
66
+ }
67
+
68
+ h1 {font-size:150%;}
69
+ h2 {font-size:130%;}
70
+ h3 {font-size:110%;}
71
+ h4 {font-size:100%;}
72
+
73
+
74
+ h3{
75
+ padding-left: 12px;
76
+ background-image: url(../images/point.png);
77
+ background-repeat: no-repeat;
78
+ background-position: left center;
79
+ }
80
+
81
+ .blank_line{
82
+ height:5px;
83
+ }
84
+ .blank_line_5px{ height:5px;}
85
+ .blank_line_4px{ height:4px;}
86
+ .blank_line_3px{ height:3px;}
87
+ .blank_line_2px{ height:2px;}
88
+ .blank_line_1px{ height:1px;}
89
+ #wrap {
90
+ background:url(../images/light.gif) center top no-repeat;
91
+ padding:20px 0;
92
+ }
93
+ #container {
94
+ margin-left: auto;
95
+ margin-right: auto;
96
+ width:800px;
97
+ }
98
+
99
+
100
+ #logo {
101
+ background:url(../images/logo.png) center no-repeat;
102
+ height:150px;
103
+ overflow:hidden;
104
+ }
105
+
106
+ #menu
107
+ {
108
+ overflow:hidden;
109
+ width:800px;
110
+ border:1px solid #486B02;
111
+ background-color: #8BD400;
112
+ }
113
+
114
+ #menu ul.navi {
115
+ margin:0;
116
+ padding:0;
117
+ list-style: none;
118
+
119
+ }
120
+
121
+ #menu ul.navi li{
122
+ display:block;
123
+ float:left ;
124
+ width:8em;
125
+ background-color: #8BD400;
126
+ }
127
+
128
+ #menu ul.navi li a{
129
+ display:block;
130
+ padding:0;
131
+ line-height:1.8em;
132
+ text-decoration: none;
133
+ color:#002B59;
134
+ font-family: 'Courier New', 'Terminal', monospace;
135
+ font-size: 20px;
136
+ font-weight:bold;
137
+ text-align: center;
138
+ }
139
+ #news h2{
140
+ padding-left: 16px;
141
+ background-image: url(../images/news.png);
142
+ background-repeat: no-repeat;
143
+ background-position: left center;
144
+ }
145
+
146
+ .bk_h2{
147
+ padding-left: 20px;
148
+ background-repeat: no-repeat;
149
+ background-position: left center;
150
+ }
151
+
152
+ .bk_h2_news{ background-image: url(../images/news.png); }
153
+ .bk_h2_synopsish{ background-image: url(../images/synopsish.png); }
154
+ .bk_h2_start{ background-image: url(../images/start.png); }
155
+ .bk_h2_learnmore{ background-image: url(../images/learnmore.png); }
156
+ .bk_h2_examples{ background-image: url(../images/examples.png); }
157
+
158
+ #example_menu
159
+ {
160
+ overflow:hidden;
161
+ width:800px;
162
+ border:1px solid #486B02;
163
+ background-color:#DBDBDB;
164
+ }
165
+ #example_menu ul.level1{
166
+ margin:0;
167
+ padding:0;
168
+ list-style: none;
169
+ }
170
+ #example_menu ul.level1 li{
171
+ margin-left:30px;
172
+ display:block;
173
+ padding-left: 12px;
174
+ background-image: url(../images/excample1.png);
175
+ background-repeat: no-repeat;
176
+ background-position: left center;
177
+ }
178
+ #example_menu ul.level1 a{
179
+ padding:0;
180
+ line-height:1.5em;
181
+ text-decoration: none;
182
+ color:#002B59;
183
+ font-family: Verdana,"BitStream vera Sans",Tahoma,Helvetica,Sans-serif;
184
+ font-size: 16px;
185
+ text-align: left;
186
+ }
187
+
188
+ #example_menu2
189
+ {
190
+ overflow:hidden;
191
+ width:800px;
192
+ }
193
+ #example_menu2 ul.level1{
194
+ margin:0;
195
+ padding:0;
196
+ list-style: none;
197
+ }
198
+ #example_menu2 ul.level1 li{
199
+ margin-left:30px;
200
+ display:block;
201
+ padding-left: 12px;
202
+ background-image: url(../images/excample2.png);
203
+ background-repeat: no-repeat;
204
+ background-position: left center;
205
+ }
206
+
207
+ #example_menu2 ul.level1 a{
208
+ padding:0;
209
+ line-height:1.5em;
210
+ text-decoration: none;
211
+ color:#002B59;
212
+ font-family: Verdana,"BitStream vera Sans",Tahoma,Helvetica,Sans-serif;
213
+ font-size: 16px;
214
+ text-align: left;
215
+ }
216
+
@@ -0,0 +1,43 @@
1
+ # CStruct Examples
2
+ require 'cstruct'
3
+
4
+ # example:
5
+ # struct Window in C\C++ (32-bit platform):
6
+ #
7
+ # struct Window
8
+ # {
9
+ # int style;
10
+ # struct{
11
+ # int x;
12
+ # int y;
13
+ # }position; /* position is anonymous struct's instance */
14
+ # };
15
+
16
+
17
+ # struct Window in Ruby:
18
+ class Window < CStruct
19
+ int32:style
20
+ struct :position do
21
+ int32:x
22
+ int32:y
23
+ end
24
+ end
25
+ # or like this (use brace):
26
+ # class Window < CStruct
27
+ # int32:style
28
+ # struct (:position) {
29
+ # int32:x
30
+ # int32:y
31
+ # }
32
+ # end
33
+
34
+ # create a Window's instance
35
+ window = Window.new
36
+
37
+ # assign like as C language
38
+ window.style = 1
39
+ window.position.x = 10
40
+ window.position.y = 10
41
+
42
+ puts "sizeof(Window) = #{Window.__size__}" # "__size__" is alias of "size"
43
+ puts "window.style = #{window.style},window.position.x = #{window.position.x},window.position.y = #{window.position.y}"