みなさんのオリジナルプログラムを、プログラム板のみなさんが優しく、時に厳しく、評価してくれるよ。
推奨アップローダー: リンク先の注意事項を良く読んで利用して下さい。
自分で見つけろボケカス!!
注意事項
* 荒らしは徹底スルー。厳守でお願いします。
* ファイル形式とサイズを書く親切。
* URL にジャンルやプログラムのアピールを添えればレスがたくさん貰えるかも。
* 他人に優しく、己に厳しく。叩かれても気にしない。
* 根拠のない嫌がらせの煽りは一切放置。
* 煽る方も煽られる方も、その原因は「自分」にあるということを自覚し、
スレ本来の主旨に沿って進行させることに努める。
* 基本はソース でカモン!!だが、バイナリでもOK。
テンプレ: 任意と書かれていない項目は必須のこと。
【タイトル】
【URL】
【ジャンル】
【ファイルサイズ】(任意)
【使用ソフト】
【コメント】
【転載】 (任意。デフォルト×。どうしてもどうしても転載して欲しい場合のみ○)
前スレ
まだ無いよ
探検
★自作プログラム、評価してよスレッド」★1 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2015/12/23(水) 17:27:58.33ID:WSDJ3sSn
256片山博文MZ ◆T6xkBnTXz7B0
2016/08/09(火) 22:09:42.12ID:Sr9xsKyw 最近の書き込みロボットは意味不明な印象操作、業務妨害に特化しているんだな
257片山博文MZ ◆T6xkBnTXz7B0
2016/08/09(火) 22:19:20.00ID:Sr9xsKyw ReactOSのバグを一匹退治したよ。
CORE-11766
CORE-11766
258デフォルトの名無しさん
2016/08/10(水) 02:41:07.36ID:h3bW1IKt >>255
ねえねえ、どんな資格取ってるの?wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ねえねえ、どんな資格取ってるの?wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
260片山博文MZ ◆T6xkBnTXz7B0
2016/08/10(水) 15:33:19.59ID:yuH5kEyn BIOS設定をいじったら、VBOXのシリアルポートが使えるようになったぜ。
これでカーネルのバグの特定ができるようになった。やったあ!
これでカーネルのバグの特定ができるようになった。やったあ!
261デフォルトの名無しさん
2016/08/11(木) 03:52:17.56ID:WkD8befN ク ク || プ //
ス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ___
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
ス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ___
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
262デフォルトの名無しさん
2016/08/11(木) 12:16:47.55ID:tiCpCKM5 ソースコードが綺麗。人に見せることを意識して書くから?
263片山博文MZ ◆T6xkBnTXz7B0
2016/08/11(木) 19:48:56.47ID:cj4D3emS >>262
コーディングスタイルとかコーディングルールというものがあってな、
守らないといけない。それが組織によって違うんだよ。ANSIスタイルにしておけば無難だが。
あと、ソースは整形ツールで自動的に整形できるからな。
コーディングスタイルとかコーディングルールというものがあってな、
守らないといけない。それが組織によって違うんだよ。ANSIスタイルにしておけば無難だが。
あと、ソースは整形ツールで自動的に整形できるからな。
264デフォルトの名無しさん
2016/08/12(金) 02:17:31.48ID:U7f/geuE if文内が1行の場合でも { }を付けるタイプなんですね。自分もそうなので親近感が湧くコードです。
Linuxカーネルのソースとか見ると関数名や変数名が何の略なのかわからないものがありますが、
変数名やメソッド名などの名称を無理に省略してないので見やすいです。
for文のループ変数ですが、iとkを使っているようですが、なぜjを使わないのでしょうか?
自分は、iを使わずj,k,lと使います。
Linuxカーネルのソースとか見ると関数名や変数名が何の略なのかわからないものがありますが、
変数名やメソッド名などの名称を無理に省略してないので見やすいです。
for文のループ変数ですが、iとkを使っているようですが、なぜjを使わないのでしょうか?
自分は、iを使わずj,k,lと使います。
265デフォルトの名無しさん
2016/08/12(金) 05:01:52.17ID:70NYzlDM ク ク || プ //
ス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ___
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
ス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ___
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
267片山博文MZ ◆T6xkBnTXz7B0
2016/08/12(金) 22:38:58.87ID:bCdqQYum これから毎週土曜日は「ReactOSカーネル勉強会」を開催します。一緒にROSカーネルの知識を蓄積しましょう。
ReactOS開発が初めての方は手引きを御覧下さい。
手引き
http://katahiromz.web.fc2.com/reactos/tebiki.html
ReactOS開発が初めての方は手引きを御覧下さい。
手引き
http://katahiromz.web.fc2.com/reactos/tebiki.html
268デフォルトの名無しさん
2016/08/13(土) 04:07:13.39ID:mtPADMhL ク ク || プ //
ス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ___
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
ス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ___
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
269デフォルトの名無しさん
2016/08/13(土) 05:22:48.81ID:mtPADMhL _ ∧_∧
 ̄  ̄ . (´Д`;)←>>267
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
 ̄  ̄ . (´Д`;)←>>267
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
270片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 12:01:16.38ID:vXCHTXVp さあ、みんな集まって。ReactOSカーネル勉強会第一回が始まるよ!!!
ROS勉強会ではいつでも質問を受け付けています。
ROS勉強会ではいつでも質問を受け付けています。
271片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 12:08:31.34ID:vXCHTXVp まず最初はテキスト検索ツールのgrepについてだ。
ファイルやフォルダーをまたいだテキストの検索には、grepという検索ツールが便利だ。
秀丸エディタやサクラエディタといった高機能なテキストエディタにはgrep機能が備わってるぞ。
関数がどこにあるかわからないとき、関数名でgrepすれば、検索で一致した箇所を出力してくれるぞ。
ファイルやフォルダーをまたいだテキストの検索には、grepという検索ツールが便利だ。
秀丸エディタやサクラエディタといった高機能なテキストエディタにはgrep機能が備わってるぞ。
関数がどこにあるかわからないとき、関数名でgrepすれば、検索で一致した箇所を出力してくれるぞ。
272片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 12:20:43.53ID:vXCHTXVp ほとんどのWindows/ReactOSのAPIは、DLLの関数群として提供される。
ではDLLとは何か。DLLは動的リンクによる実行可能なモジュールであると言える。
DLLの拡張子はほとんどが.dllであり、システムフォルダーにたくさん格納されている。
動的リンクは必要なときに実行可能モジュールをプロセスメモリーにロード(load)でき、不必要なときにアンロードできる。
よってDLLはメモリーの節約やコードの再利用を可能にする。
ではDLLとは何か。DLLは動的リンクによる実行可能なモジュールであると言える。
DLLの拡張子はほとんどが.dllであり、システムフォルダーにたくさん格納されている。
動的リンクは必要なときに実行可能モジュールをプロセスメモリーにロード(load)でき、不必要なときにアンロードできる。
よってDLLはメモリーの節約やコードの再利用を可能にする。
273片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 12:26:33.51ID:vXCHTXVp さて、次はROSのソースコードをダウンロードしてみよう。
「手引き」に従ってRosBEをダウンロード&インストールし、RosBEでROSのソースをダウンロードしてみよう。
「手引き」
http://katahiromz.web.fc2.com/reactos/tebiki.html
わからないことがあれば質問して下さい。
「手引き」に従ってRosBEをダウンロード&インストールし、RosBEでROSのソースをダウンロードしてみよう。
「手引き」
http://katahiromz.web.fc2.com/reactos/tebiki.html
わからないことがあれば質問して下さい。
274片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 12:39:34.37ID:vXCHTXVp ROSソースのダウンロードが終わったら、ダウンロードした場所を覚えておこう。
Windows7/10では、おそらく「C:\Users\(自分のアカウント名)\reactos」になる。
ダウンロードしたソースを開いてしばらく適当にながめてみよう。
Windows7/10では、おそらく「C:\Users\(自分のアカウント名)\reactos」になる。
ダウンロードしたソースを開いてしばらく適当にながめてみよう。
275片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 12:49:51.76ID:vXCHTXVp ReactOSの省略形のROSは勝ち負けのwin/lossに引っかけたものになっている。ちょっとした言葉遊びだね。
276片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 13:00:03.84ID:vXCHTXVp それでは、フォルダのreactos→trunk→reactosを順番に開く。
READMEというファイルがあるから、テキストエディタで開いてよく読もう。
次に、reactos→trunk→reactos→dll→win32には、たくさんのDLLのソースがある。ただし、gdi32.dllとuser32.dllのソースはここにはない。
gdi32とuser32は、reactos→trunk→reactos→win32ssにある。この2つはカーネルに近いということで特別扱いされている。
READMEというファイルがあるから、テキストエディタで開いてよく読もう。
次に、reactos→trunk→reactos→dll→win32には、たくさんのDLLのソースがある。ただし、gdi32.dllとuser32.dllのソースはここにはない。
gdi32とuser32は、reactos→trunk→reactos→win32ssにある。この2つはカーネルに近いということで特別扱いされている。
277片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 13:07:47.49ID:vXCHTXVp カーネルの関数のほとんどはprefix(プレフィックス)で分類されている。
prefixとは、名前の先頭にくっついたもののことである。
例えば、関数名の最初に「User32」がついていれば、その関数はuser32のカーネル関数であり、関数名の先頭に「Gdi」があればGDIのカーネル関数である。
prefixとは、名前の先頭にくっついたもののことである。
例えば、関数名の最初に「User32」がついていれば、その関数はuser32のカーネル関数であり、関数名の先頭に「Gdi」があればGDIのカーネル関数である。
278デフォルトの名無しさん
2016/08/13(土) 13:08:54.76ID:mtPADMhL 彡⌒ミ
(´・ω・`) 彡⌒ミ
/ \ ( )いいこと言うなハゲ
.__| | .| |_ / ヽ
||\  ̄ ̄ ̄ ̄ / .| | |
||\..彡⌒ミ (⌒\ |__./ ./
||. ( ) ~\_____ノ| 彡⌒ミ
/ ヽ だよなハゲ \| ( )
| ヽ \/ ヽ. 美しいハゲだな
| |ヽ、二⌒) / .| | |
.| ヽ \∧_∧ (⌒\|__./ /
(´・ω・`) 彡⌒ミ
/ \ ( )いいこと言うなハゲ
.__| | .| |_ / ヽ
||\  ̄ ̄ ̄ ̄ / .| | |
||\..彡⌒ミ (⌒\ |__./ ./
||. ( ) ~\_____ノ| 彡⌒ミ
/ ヽ だよなハゲ \| ( )
| ヽ \/ ヽ. 美しいハゲだな
| |ヽ、二⌒) / .| | |
.| ヽ \∧_∧ (⌒\|__./ /
279デフォルトの名無しさん
2016/08/13(土) 13:15:25.57ID:mtPADMhL ハゲ!ハゲ!ハゲ!ハゲ!ハゲハゲハゲハゲハゲハゲうぉぉぉぉぉおおおおおおおおお〜!!!!!!
280片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 13:31:11.12ID:vXCHTXVp 俺はふさふさだ。
この辺で勉強会はお開きとさせてもらいます。次回は来週の土曜日です。
この辺で勉強会はお開きとさせてもらいます。次回は来週の土曜日です。
281デフォルトの名無しさん
2016/08/13(土) 13:32:43.07ID:mtPADMhL ハゲ!ハゲ!ハゲ!ハゲ!ハゲハゲハゲハゲハゲハゲうぉぉぉぉぉおおおおおおおおお〜!!!!!!
282デフォルトの名無しさん
2016/08/13(土) 13:33:30.61ID:mtPADMhL _ ∧_∧
 ̄  ̄ . (´Д`;)←>>280
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
 ̄  ̄ . (´Д`;)←>>280
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
283デフォルトの名無しさん
2016/08/13(土) 13:33:47.81ID:mtPADMhL ク ク || プ //
ス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ___
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
ス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ___
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
284デフォルトの名無しさん
2016/08/13(土) 13:34:52.81ID:mtPADMhL ,r-─────、
,f _____,、ー-、
,ノ r' t ヽ
f / '''''' ''''''::\ .l
| |(●), .、(●)、:::| ノ この辺で勉強会はお開きとさせてもらいます。
(⌒' .,,ノ(、_, )ヽ、,, .:::::;⌒) >>280(笑)
. t_t `-=ニ゚=- ' .:::::::;tノ
\ `ニニ´ .:::::/
,,.....イ `ー-.ニ−― ノ゙-、..
: ┃ ◆・◆ ┃ i
┃ .┃ |
,f _____,、ー-、
,ノ r' t ヽ
f / '''''' ''''''::\ .l
| |(●), .、(●)、:::| ノ この辺で勉強会はお開きとさせてもらいます。
(⌒' .,,ノ(、_, )ヽ、,, .:::::;⌒) >>280(笑)
. t_t `-=ニ゚=- ' .:::::::;tノ
\ `ニニ´ .:::::/
,,.....イ `ー-.ニ−― ノ゙-、..
: ┃ ◆・◆ ┃ i
┃ .┃ |
285おぼ〜ん
2016/08/13(土) 16:21:57.48ID:vXCHTXVp おぼ〜ん
286デフォルトの名無しさん
2016/08/13(土) 17:01:10.74ID:ZZxg2p9V ReactOSを初めて知ったので、ダウンロード->VirtualBoxにインストール。
まだ、実用的では無いがインターネットにも繋がるし、Firefoxも普通に動いた。
日本語表示はされるが、入力は全くだめだった。
まだ、実用的では無いがインターネットにも繋がるし、Firefoxも普通に動いた。
日本語表示はされるが、入力は全くだめだった。
287デフォルトの名無しさん
2016/08/13(土) 17:08:34.80ID:ZZxg2p9V ReactOSのソースコードを見てみた。imm.cにFIXME()がたくさんコーディングされていて、日本語入力が無理なのがわかる。
288デフォルトの名無しさん
2016/08/13(土) 17:39:57.08ID:mtPADMhL PearOSを見てみたw
289デフォルトの名無しさん
2016/08/13(土) 17:54:49.23ID:NdwW63SR >>288
PearOSのWikiを見てみた。PowerPCコードをx86コードに変換するエミュレータなのがわかる。
PearOSのWikiを見てみた。PowerPCコードをx86コードに変換するエミュレータなのがわかる。
290片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 18:11:28.68ID:vXCHTXVp >>286-287
新入りさん、こんにちは。我々は帝国に背いた反乱軍だ。
アカウントの登録の際には偽名を使いたまえ。ReactOSの改良と日本語化が進まなければ、
毎年莫大な金額をどこかの企業に奪われてしまう。基本システムを解放し、オープン化せよ。これは我々に出題されたパズルである。
新入りさん、こんにちは。我々は帝国に背いた反乱軍だ。
アカウントの登録の際には偽名を使いたまえ。ReactOSの改良と日本語化が進まなければ、
毎年莫大な金額をどこかの企業に奪われてしまう。基本システムを解放し、オープン化せよ。これは我々に出題されたパズルである。
291デフォルトの名無しさん
2016/08/13(土) 18:31:11.99ID:NdwW63SR >>290
はじめまして。
ちなみに、262が2chへの初書き込みになります。
いつもは見ているだけですが、あまりにも感動したので思わず書き込んでしまいました。
262、264、286、287、289はすべて自分の書き込みです。2ch語が今ひとつわかってないので口調がコロコロ変わってしまいます。
はじめまして。
ちなみに、262が2chへの初書き込みになります。
いつもは見ているだけですが、あまりにも感動したので思わず書き込んでしまいました。
262、264、286、287、289はすべて自分の書き込みです。2ch語が今ひとつわかってないので口調がコロコロ変わってしまいます。
292デフォルトの名無しさん
2016/08/13(土) 18:48:34.08ID:NdwW63SR 291続き
未だにWindowsXPを使っています。しかし、いずれ無理が来ると思いLinuxに乗り換えている最中です。
ReactOSが実用化できれば、長年使ってたAPIに別れを告げなくてもよくなります。
救世主の時代も有ったと思います。いつ暗黒面に落ちたのかわかりませんが、自分も帝国のやり方に反対する人の一人です。
未だにWindowsXPを使っています。しかし、いずれ無理が来ると思いLinuxに乗り換えている最中です。
ReactOSが実用化できれば、長年使ってたAPIに別れを告げなくてもよくなります。
救世主の時代も有ったと思います。いつ暗黒面に落ちたのかわかりませんが、自分も帝国のやり方に反対する人の一人です。
293片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 19:00:17.83ID:vXCHTXVp ReactOSのデバッグ出力について解説しよう。ROS起動時に表示されるブートメニューでDebugを選ぶと、シリアルポートにデバッグ出力するようになる。
ROSをインストールしたVirtualBoxでシリアルポートを有効にして、指定したパスのRawファイルに出力するようにすれば、シリアルポートの出力がテキストとして得られる。
ソースのある場所でデバッグ出力したい場合は、デバッグ出力したいソースファイルで<debug.h>を#includeし、「#define NDEBUG」という行があればコメントにする。
そしてDPRINT("Hello, ReactOS\n");と記述すれば、そこが実行されたときに「Hello, ReactOS」と出力される。DPRINTはprintfと同じ文法だ。
ROSをインストールしたVirtualBoxでシリアルポートを有効にして、指定したパスのRawファイルに出力するようにすれば、シリアルポートの出力がテキストとして得られる。
ソースのある場所でデバッグ出力したい場合は、デバッグ出力したいソースファイルで<debug.h>を#includeし、「#define NDEBUG」という行があればコメントにする。
そしてDPRINT("Hello, ReactOS\n");と記述すれば、そこが実行されたときに「Hello, ReactOS」と出力される。DPRINTはprintfと同じ文法だ。
294片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 19:11:59.43ID:vXCHTXVp 【練習問題】
CopyRect APIを実装した関数の定義を見つけ出し、その関数にDPRINT("Hello, ReactOS\n");のコードを追加して、シリアルポートに出力させることを確認せよ。
CopyRect APIを実装した関数の定義を見つけ出し、その関数にDPRINT("Hello, ReactOS\n");のコードを追加して、シリアルポートに出力させることを確認せよ。
295デフォルトの名無しさん
2016/08/13(土) 19:26:24.44ID:NdwW63SR https://github.com/reactos/reactos/blob/master/reactos/win32ss/user/user32/windows/rect.c
の44行目に追加
ソースはダウンロードしてません。しばらくは見る側にいます。
の44行目に追加
ソースはダウンロードしてません。しばらくは見る側にいます。
296デフォルトの名無しさん
2016/08/13(土) 19:29:25.02ID:NdwW63SR 厚かましいとはわかっていますが、
>>293のような情報はとても欲しいです。
>>293のような情報はとても欲しいです。
297片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 20:20:00.47ID:vXCHTXVp 次はバージョン管理システムについてだ。
ReactOSではバージョン管理システムにSubversion (SVN)を採用している。Gitでもパッチを作成できるが、リビジョンの同期のためにSVNの利用をオススメする。
WindowsでSVNを利用するには、TortoiseSVNをインストールするのが一番簡単だ。
SVNで管理されたフォルダには.svnという隠しフォルダがあり、ここですべてのバージョン情報を管理している。
ReactOSではバージョン管理システムにSubversion (SVN)を採用している。Gitでもパッチを作成できるが、リビジョンの同期のためにSVNの利用をオススメする。
WindowsでSVNを利用するには、TortoiseSVNをインストールするのが一番簡単だ。
SVNで管理されたフォルダには.svnという隠しフォルダがあり、ここですべてのバージョン情報を管理している。
298片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 20:26:06.58ID:vXCHTXVp バージョン管理に新しいファイルを追加したい場合は、適当な場所にファイルを置き、
右クリックして、TortoiseSVNメニューの「Add」を選ぶ。
フォルダーを変更前に戻したい場合は、フォルダを右クリックして、TortoiseSVNメニューの「Revert」を選ぶ。
変更内容のパッチを作成したい場合は、SVNのルートフォルダを右クリックして「Create Patch」を選ぶ。
逆にパッチを適用したい場合は「Apply Patch」を選ぶ。
右クリックして、TortoiseSVNメニューの「Add」を選ぶ。
フォルダーを変更前に戻したい場合は、フォルダを右クリックして、TortoiseSVNメニューの「Revert」を選ぶ。
変更内容のパッチを作成したい場合は、SVNのルートフォルダを右クリックして「Create Patch」を選ぶ。
逆にパッチを適用したい場合は「Apply Patch」を選ぶ。
299片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 20:37:50.19ID:vXCHTXVp パッチというのはテキストファイルの変更内容を表すデータであり、これを投稿することで変更内容を伝えることができる。
Linux環境では、パッチを作成するプログラムの「diff」と、パッチを適用するための「patch」というプログラムが有名だ。
通常、パッチだけではバイナリーファイルを表すことはできない。バイナリーが必要ならば別途添付する必要がある。
Linux環境では、パッチを作成するプログラムの「diff」と、パッチを適用するための「patch」というプログラムが有名だ。
通常、パッチだけではバイナリーファイルを表すことはできない。バイナリーが必要ならば別途添付する必要がある。
300片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 21:09:43.98ID:vXCHTXVp まともな開発機がないとプログラミングはキツいよ。価格.comで中古のパソコンを探してみたら?
301片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 21:28:52.15ID:vXCHTXVp お金は欲しいか?
302デフォルトの名無しさん
2016/08/13(土) 21:38:45.09ID:mtPADMhL >>300
んで、Pen4から買い換えたか?w
んで、Pen4から買い換えたか?w
303片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 21:48:42.11ID:vXCHTXVp また妄想癖が
304デフォルトの名無しさん
2016/08/13(土) 21:51:16.32ID:mtPADMhL _ ∧_∧
 ̄  ̄ . (´Д`;)←>>303
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
 ̄  ̄ . (´Д`;)←>>303
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
306デフォルトの名無しさん
2016/08/13(土) 21:53:32.32ID:mtPADMhL _ ∧_∧
 ̄  ̄ . (´Д`;)←>>305
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
 ̄  ̄ . (´Д`;)←>>305
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
307デフォルトの名無しさん
2016/08/13(土) 21:55:45.56ID:mtPADMhL 頑張れPen4w
308デフォルトの名無しさん
2016/08/13(土) 21:56:29.09ID:mtPADMhL ク ク || プ //
ス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ___
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
ス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ___
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
310片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 22:03:59.65ID:vXCHTXVp 意味なく陰湿な嫌がらせをして、妄想の中で勝った気になって悲しくないのか、このクズは
311デフォルトの名無しさん
2016/08/13(土) 22:07:55.40ID:mtPADMhL >>309
CeleronJ1800ぐらいか?wwwwwwwwwwww
CeleronJ1800ぐらいか?wwwwwwwwwwww
312デフォルトの名無しさん
2016/08/13(土) 22:09:05.09ID:mtPADMhL 意味なく陰湿な嫌がらせをして♪
妄想の中で勝った気になって♪
悲しくないのか♪
このクズは♪
ねぇねぇ、作りかけのインベーダーまだー?wwwwwwwwwwwwww
妄想の中で勝った気になって♪
悲しくないのか♪
このクズは♪
ねぇねぇ、作りかけのインベーダーまだー?wwwwwwwwwwwwww
313デフォルトの名無しさん
2016/08/13(土) 22:10:23.03ID:mtPADMhL _ ∧_∧
 ̄  ̄ . (´Д`;)←>>310
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
 ̄  ̄ . (´Д`;)←>>310
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
314デフォルトの名無しさん
2016/08/13(土) 22:10:47.14ID:mtPADMhL ク ク || プ //
ス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ___
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
ス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ___
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
316片山博文MZ ◆T6xkBnTXz7B0
2016/08/13(土) 22:13:43.45ID:vXCHTXVp 音符とwを連続使用するコイツはコンソールだな。何で比べたがるのかね。ちなみに私のCPUは、
Core i5だ。偏見やバイアスが掛かっていないと死んじゃうのか?
Core i5だ。偏見やバイアスが掛かっていないと死んじゃうのか?
317デフォルトの名無しさん
2016/08/13(土) 22:14:02.19ID:mtPADMhL 手コキ船登場wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
318デフォルトの名無しさん
2016/08/13(土) 22:14:52.61ID:mtPADMhL コテをつけなくなった分,少しは恥を知ったのだろう
そのうち片山さんの実力を知って自滅するだろうから,それまだ待っているのがいい
そのうち片山さんの実力を知って自滅するだろうから,それまだ待っているのがいい
320デフォルトの名無しさん
2016/08/13(土) 22:20:34.72ID:mtPADMhL では作りかけのインベーダーができるまで(^。^)
321デフォルトの名無しさん
2016/08/13(土) 22:41:20.41ID:mtPADMhL ク ク || プ //
ス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ___
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
ス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ___
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
322デフォルトの名無しさん
2016/08/13(土) 22:46:49.04ID:mtPADMhL _ ∧_∧
 ̄  ̄ . (´Д`;)←>>319
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
 ̄  ̄ . (´Д`;)←>>319
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
323デフォルトの名無しさん
2016/08/14(日) 05:46:19.36ID:5+xwRHyc324デフォルトの名無しさん
2016/08/14(日) 05:52:53.99ID:LEn2F7ZW ク ク || プ //
ス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ___
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
ス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ___
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
325デフォルトの名無しさん
2016/08/14(日) 11:34:34.09ID:wAOzBEo6 >>297
TortoiseSVN1.9.4.27285がVista以降しか対応してなかった
TortoiseSVN1.9.4.27285がVista以降しか対応してなかった
326デフォルトの名無しさん
2016/08/14(日) 11:35:28.94ID:LEn2F7ZW _ ∧_∧
 ̄  ̄ . (´Д`;)←>>325
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
 ̄  ̄ . (´Д`;)←>>325
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
327デフォルトの名無しさん
2016/08/14(日) 12:31:07.67ID:wAOzBEo6 >>325
Linux環境でsvn checkoutコマンドでソースファイルを取得
Linux環境でsvn checkoutコマンドでソースファイルを取得
328片山博文MZ ◆T6xkBnTXz7B0
2016/08/14(日) 13:14:46.39ID:ZaHz4rpv 新入りが来たことだし、カーネル勉強会は、土曜日に限らず不定期で行うことに致す。
329片山博文MZ ◆T6xkBnTXz7B0
2016/08/14(日) 13:18:37.68ID:ZaHz4rpv ReactOSはオブジェクト指向であり、処理対象をモノ(object)という単位で
考えることが多い。まずは、ユーザーオブジェクトから読み始めるぞ。
win32ss\user\ntuser\object.c
を参照しよう。最初にPUSER_HANDLE_TABLE gHandleTableの定義が見える。
PUSER_HANDLE_TABLE型の定義はwin32ss\include\ntuser.h
の32行目にある。nb_handleというのは、ハンドルのnumberの意味だろう。
object.cの533行目にUserCreateObjectの定義がある。
この関数でユーザーオブジェクトを作成する。
222行目に、グローバル変数ObjectCallbacksが定義されている。
ObjectCallbacksは、UserCreateObjectで参照されており、
ハンドルの作成・解放を行う関数であることがわかる。
ObjectCallbacksにハンドルの種類としてTYPE_WINDOW、TYPE_MENU、
TYPE_INPUTCONTEXTなどがあることが確認できる。
考えることが多い。まずは、ユーザーオブジェクトから読み始めるぞ。
win32ss\user\ntuser\object.c
を参照しよう。最初にPUSER_HANDLE_TABLE gHandleTableの定義が見える。
PUSER_HANDLE_TABLE型の定義はwin32ss\include\ntuser.h
の32行目にある。nb_handleというのは、ハンドルのnumberの意味だろう。
object.cの533行目にUserCreateObjectの定義がある。
この関数でユーザーオブジェクトを作成する。
222行目に、グローバル変数ObjectCallbacksが定義されている。
ObjectCallbacksは、UserCreateObjectで参照されており、
ハンドルの作成・解放を行う関数であることがわかる。
ObjectCallbacksにハンドルの種類としてTYPE_WINDOW、TYPE_MENU、
TYPE_INPUTCONTEXTなどがあることが確認できる。
330片山博文MZ ◆T6xkBnTXz7B0
2016/08/14(日) 13:22:15.64ID:ZaHz4rpv331片山博文MZ ◆T6xkBnTXz7B0
2016/08/14(日) 13:28:36.61ID:ZaHz4rpv UserReferenceObjectは、IUnknown::AddRefみたいな関数で、
UserDereferenceObjectは、IUnknown::Releaseみたいな関数だ。
要は、オブジェクトにデータとして参照カウントを保持して、
カウントがゼロになったときにどこからも参照されていないと
判断して削除するという機構である。
UserDereferenceObjectは、IUnknown::Releaseみたいな関数だ。
要は、オブジェクトにデータとして参照カウントを保持して、
カウントがゼロになったときにどこからも参照されていないと
判断して削除するという機構である。
332片山博文MZ ◆T6xkBnTXz7B0
2016/08/14(日) 13:32:41.59ID:ZaHz4rpv >>325 >>330
http://qiita.com/elmar_leitz/items/1d5792c228c090bad052
http://qiita.com/konweb/items/6effd36aab551b2d6b8f
「svn diff > mypatch.patch」でパッチが作成できるぞ。
http://qiita.com/elmar_leitz/items/1d5792c228c090bad052
http://qiita.com/konweb/items/6effd36aab551b2d6b8f
「svn diff > mypatch.patch」でパッチが作成できるぞ。
333片山博文MZ ◆T6xkBnTXz7B0
2016/08/14(日) 13:39:34.50ID:ZaHz4rpv OSの中心となる領域をカーネルといい、カーネル以外の領域のことをユーザーランドという。
カーネルではさまざまなルールがある。ZeroMemoryやmemsetは使わない。代わりにRtlZeroMemoryを使う。CRT関数は使わない。ウィンドウを扱うときには、PWND型を使う。などといったものだ。
カーネルではさまざまなルールがある。ZeroMemoryやmemsetは使わない。代わりにRtlZeroMemoryを使う。CRT関数は使わない。ウィンドウを扱うときには、PWND型を使う。などといったものだ。
334片山博文MZ ◆T6xkBnTXz7B0
2016/08/14(日) 13:49:41.61ID:ZaHz4rpv 【練習問題】
ObjectCallbacksにAllocDeskThreadObject関数とAllocThreadObject関数が
登録されているが、この2つの関数の違いについて調べなさい。
ObjectCallbacksにAllocDeskThreadObject関数とAllocThreadObject関数が
登録されているが、この2つの関数の違いについて調べなさい。
335片山博文MZ ◆T6xkBnTXz7B0
2016/08/14(日) 15:06:57.97ID:sUdOErvn 【答え】
AllocDeskThreadObjectはデスクトップのヒープを使ってメモリーを確保するが、
AllocThreadObjectはグローバルユーザーヒープを使ってメモリーを確保する。
また、AllocThreadObjectはpSelfとrpdeskメンバーにデータを格納しない。
AllocDeskThreadObjectはデスクトップのヒープを使ってメモリーを確保するが、
AllocThreadObjectはグローバルユーザーヒープを使ってメモリーを確保する。
また、AllocThreadObjectはpSelfとrpdeskメンバーにデータを格納しない。
336片山博文MZ ◆T6xkBnTXz7B0
2016/08/14(日) 15:22:12.02ID:sUdOErvn お次はwindow.cを見てみよう。名前通りウィンドウオブジェクトの処理が書かれている。
103行目のUserGetWindowObjectを使えば、ウィンドウハンドルのHWNDからユーザーオブジェクトのPWNDが取得できる。
prefixがIntの関数はAPI内部(internal)の関数だ。
103行目のUserGetWindowObjectを使えば、ウィンドウハンドルのHWNDからユーザーオブジェクトのPWNDが取得できる。
prefixがIntの関数はAPI内部(internal)の関数だ。
337デフォルトの名無しさん
2016/08/14(日) 16:16:34.64ID:wAOzBEo6 >>335
C言語のmalloc関数を読んだらOS上ではAllocThreadObject関数が呼ばれ、
アプリケーションからは呼べないがカーネルやドライバーがメモリを確保したい場合はAllocDeskThreadObject関数を呼ぶということなのかなぁ
C言語のmalloc関数を読んだらOS上ではAllocThreadObject関数が呼ばれ、
アプリケーションからは呼べないがカーネルやドライバーがメモリを確保したい場合はAllocDeskThreadObject関数を呼ぶということなのかなぁ
338片山博文MZ ◆T6xkBnTXz7B0
2016/08/14(日) 16:42:25.34ID:sUdOErvn >>337
AllocThreadObjectとAllocDeskThreadObjectはどちらもユーザーオブジェクトを確保する関数だ。
CRTのmallocとはあまり関係無い。共通点はヒープを使っていることだけだ。
Deskが付いているのはメモリーがデスクトップの所有になることを表す。
デスクトップは1つだけとは限らない。デスクトップが破棄されたとき、そのヒープも使えなくなる。
AllocThreadObjectとAllocDeskThreadObjectはどちらもユーザーオブジェクトを確保する関数だ。
CRTのmallocとはあまり関係無い。共通点はヒープを使っていることだけだ。
Deskが付いているのはメモリーがデスクトップの所有になることを表す。
デスクトップは1つだけとは限らない。デスクトップが破棄されたとき、そのヒープも使えなくなる。
339片山博文MZ ◆T6xkBnTXz7B0
2016/08/14(日) 16:48:21.60ID:sUdOErvn ここで「ユーザー」というのはGUI (graphical user interface)のuserのことである。
ウィンドウもメニューもカーソルもユーザーオブジェクトだ。ユーザーランドではそれらをハンドルで扱い、カーネルではユーザーオブジェクトで扱う。
ウィンドウもメニューもカーソルもユーザーオブジェクトだ。ユーザーランドではそれらをハンドルで扱い、カーネルではユーザーオブジェクトで扱う。
340片山博文MZ ◆T6xkBnTXz7B0
2016/08/14(日) 17:20:09.27ID:sUdOErvn TYPE_WINDOW、TYPE_MENUなどは、HANDLE_TYPE列挙型として、win32ss\include\ntuser.hの40行目で定義されている。
これらはユーザーオブジェクトの種類を表す。これらの値のいずれかがUserCreateObjectの第5引数typeとして渡される。
UserCreateObjectはtypeを使ってObjectCallbacksを参照する。
ObjectCallbacksは、関数ポインターを所有する構造体の配列だ。
これらはユーザーオブジェクトの種類を表す。これらの値のいずれかがUserCreateObjectの第5引数typeとして渡される。
UserCreateObjectはtypeを使ってObjectCallbacksを参照する。
ObjectCallbacksは、関数ポインターを所有する構造体の配列だ。
341デフォルトの名無しさん
2016/08/14(日) 17:39:01.93ID:BNnLSgEf filebrowser.exe(エクスプローラ?) ... フォルダーオプションメニューがグレイアウトしてクリックできなかったこと以外、
特に気になった点はない。ただ、ReactOSで起動したときと違うようなので、バージョンの違いなのか、OSの違いなのかは不明。
終了ボタンを押すと「問題が発生したため、・・・」のダイアログが表示される。
特に気になった点はない。ただ、ReactOSで起動したときと違うようなので、バージョンの違いなのか、OSの違いなのかは不明。
終了ボタンを押すと「問題が発生したため、・・・」のダイアログが表示される。
342デフォルトの名無しさん
2016/08/14(日) 17:40:37.23ID:BNnLSgEf RosBE(ReactOS構築環境)のインストールが終わり、ReactOSのコンパイルをしてみた。
自分で、user32.dllやgdi32.dllを作れるのは感動
WindowsXPにこれらdllをコピーするのは、怖くて流石にできないが、
ReactOSコンパイルでできたexeをXPで実行してみた。
自分で、user32.dllやgdi32.dllを作れるのは感動
WindowsXPにこれらdllをコピーするのは、怖くて流石にできないが、
ReactOSコンパイルでできたexeをXPで実行してみた。
343デフォルトの名無しさん
2016/08/14(日) 17:43:42.18ID:BNnLSgEf explorer.exe(エクスプローラ) ... 起動しない。
taskmgr.exe(タスクマネージャ) .... WindowsXPのタスクマネージャが実行されるようだ。
explorer.exeとtaskmgr.exeは、なりすまし防止のため、WindowsXPで特別なことをしているのかもしれない。
taskmgr.exe(タスクマネージャ) .... WindowsXPのタスクマネージャが実行されるようだ。
explorer.exeとtaskmgr.exeは、なりすまし防止のため、WindowsXPで特別なことをしているのかもしれない。
344デフォルトの名無しさん
2016/08/14(日) 17:46:11.80ID:BNnLSgEf calc.exe(電卓)、winmine.exe(ゲーム)...こんなもののソースまであるのかと驚きながら動くことを確認。
345デフォルトの名無しさん
2016/08/14(日) 17:47:44.31ID:BNnLSgEf cmd(コマンドプロンプト)...普通に動く。
346デフォルトの名無しさん
2016/08/14(日) 17:54:50.68ID:BNnLSgEf Sorry, you have been blockedが表示されて書き込めなかったので、何がおかしいのか調べていたらバラバラになった。
342、344、345、341、343の順で見ることを推奨
342、344、345、341、343の順で見ることを推奨
347デフォルトの名無しさん
2016/08/14(日) 18:02:27.83ID:BNnLSgEf >>339
なるほど!ユーザーオブジェクトが理解できれば話の流れがつかめます
なるほど!ユーザーオブジェクトが理解できれば話の流れがつかめます
348片山博文MZ ◆T6xkBnTXz7B0
2016/08/15(月) 09:06:15.74ID:ZZZ997rF では続きをやろう。win32ss\user\ntuser\window.cの156行目にIntIsWindow関数がある。
これは指定されたハンドルからPWNDが取得できたらTRUEを返すシンプルな関数だ。
PWNDの定義はwin32ss\include\ntuser.hの656行目にある。
window.cの184行目にIntGetParent関数がある。これは親ウィンドウを返す関数だ。
win32ss\user\user32\windows\window.cには、IsWindow APIとGetParent APIの実体がある。APIと内部関数は多少動作が違うが、似た動作になっている。
これは指定されたハンドルからPWNDが取得できたらTRUEを返すシンプルな関数だ。
PWNDの定義はwin32ss\include\ntuser.hの656行目にある。
window.cの184行目にIntGetParent関数がある。これは親ウィンドウを返す関数だ。
win32ss\user\user32\windows\window.cには、IsWindow APIとGetParent APIの実体がある。APIと内部関数は多少動作が違うが、似た動作になっている。
349片山博文MZ ◆T6xkBnTXz7B0
2016/08/15(月) 09:36:07.33ID:ZZZ997rF 次に、ウィンドウがどのように作成されるかを見てみよう。
フォルダwin32ssをCreateWindowExでgrepする。win32ss\user\user32\windows\window.cの
452行目にCreateWindowExWの定義が見付かる。中身を読んでみると、(1)システムコントロールが登録されていなかったら登録する。(2) 拡張スタイルにWS_EX_MDICHILDがあれば、あれこれ処理を行う。
(3)その後はUser32CreateWindowExに丸投げ、という形になっている。User32CreateWindowExは、152行目にある。
フォルダwin32ssをCreateWindowExでgrepする。win32ss\user\user32\windows\window.cの
452行目にCreateWindowExWの定義が見付かる。中身を読んでみると、(1)システムコントロールが登録されていなかったら登録する。(2) 拡張スタイルにWS_EX_MDICHILDがあれば、あれこれ処理を行う。
(3)その後はUser32CreateWindowExに丸投げ、という形になっている。User32CreateWindowExは、152行目にある。
350片山博文MZ ◆T6xkBnTXz7B0
2016/08/15(月) 10:05:28.44ID:ZZZ997rF さらにUser32CreateWindowExの中身を見てみると、文字列処理、メニューのロード、後はNtUserCreateWindowExに丸投げ、という形である。
カーネルの文字列処理ではCRT関数は使えないので、LARGE_STRING、UNICODE_STRING構造体、Rtl関数などを使って処理している。
lstrはLARGE_STRINGのprefixで、ustrはUNICODE_STRINGのprefixだ。
NtUserCreateWindowExは、win32ss\user\ntuser\window.cの2386行目。
カーネルの文字列処理ではCRT関数は使えないので、LARGE_STRING、UNICODE_STRING構造体、Rtl関数などを使って処理している。
lstrはLARGE_STRINGのprefixで、ustrはUNICODE_STRINGのprefixだ。
NtUserCreateWindowExは、win32ss\user\ntuser\window.cの2386行目。
351片山博文MZ ◆T6xkBnTXz7B0
2016/08/15(月) 10:11:54.93ID:ZZZ997rF さらにさらに、NtUserCreateWindowExを見てみると、
------
あれこれ初期化
UserEnterExclusive();
pwnd = co_UserCreateWindowEx(...);
...
hwnd = pwnd ? UserHWGetHandle(pwnd) : NULL;
UserLeave();
後片付け
return hwnd;
------
という形になっている。UserHWGetHandleはPWNDからHWNDを取得する関数だ。ここで、
UserEnterExclusive();
と
UserLeave();
の間のコードは特別な意味がある。
------
あれこれ初期化
UserEnterExclusive();
pwnd = co_UserCreateWindowEx(...);
...
hwnd = pwnd ? UserHWGetHandle(pwnd) : NULL;
UserLeave();
後片付け
return hwnd;
------
という形になっている。UserHWGetHandleはPWNDからHWNDを取得する関数だ。ここで、
UserEnterExclusive();
と
UserLeave();
の間のコードは特別な意味がある。
352片山博文MZ ◆T6xkBnTXz7B0
2016/08/15(月) 11:44:56.59ID:ZZZ997rF UserEnterExclusive();とUserLeave(); の間は「排他制御」(はいたせいぎょ)の区間である。
ReactOSはマルチスレッドOSなので、1つのデータや資源に複数のスレッドからアクセスされることがある。
そのとき、同時にアクセスされたために読み書きされた内容がおかしくなる可能性がある。それを防ぐために、データや資源へのアクセスにロックを掛けて、ロックされているときはロックが解除されるまで待つという機構が排他制御である。
ReactOSはマルチスレッドOSなので、1つのデータや資源に複数のスレッドからアクセスされることがある。
そのとき、同時にアクセスされたために読み書きされた内容がおかしくなる可能性がある。それを防ぐために、データや資源へのアクセスにロックを掛けて、ロックされているときはロックが解除されるまで待つという機構が排他制御である。
353↑
2016/08/15(月) 11:49:28.11ID:f5ijFLi5 おかしくなる可能性があるw
354片山博文MZ ◆T6xkBnTXz7B0
2016/08/15(月) 12:29:50.36ID:ZZZ997rF カーネル内部で使用できるRtl関数の定義は、sdk\lib\rtlにある。
メモリー初期化用のRtlZeroMemoryや、Unicode文字列の初期化のRtlInitUnicodeStringなどが見付かるだろう。
メモリー初期化用のRtlZeroMemoryや、Unicode文字列の初期化のRtlInitUnicodeStringなどが見付かるだろう。
355↑
2016/08/15(月) 12:31:13.67ID:f5ijFLi5 _ ∧_∧
 ̄  ̄ . (´Д`;)←>>354
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
 ̄  ̄ . (´Д`;)←>>354
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 ★2 [蚤の市★]
- クリスマスの「予定なし」54% [少考さん★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★2 [蚤の市★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 【実況】博衣こよりのえちえち機動戦士ガンダム逆襲のシャア🧪★5
- 茶ぁしばこうや··· ( ¨̮ )︎︎𖠚ᐝ3
- 【朗報】南鳥島のレアアース、中国産の「20倍の純度」青山繁晴氏「日本は資源大国」日本復活のファンファーレが鳴り響く! [673057929]
- 【悲報】巨人駒田3軍監督、不満爆発WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
- 愛国者「釘を使わない日本独自の伝統工法スゴイ!」X民「それ中国起源ですよ」→批判殺到 [834922174]
- お前ら 寒さ対策どうしてるの [769050516]
