みなさんのオリジナルプログラムを、プログラム板のみなさんが優しく、時に厳しく、評価してくれるよ。
推奨アップローダー: リンク先の注意事項を良く読んで利用して下さい。
自分で見つけろボケカス!!
注意事項
* 荒らしは徹底スルー。厳守でお願いします。
* ファイル形式とサイズを書く親切。
* URL にジャンルやプログラムのアピールを添えればレスがたくさん貰えるかも。
* 他人に優しく、己に厳しく。叩かれても気にしない。
* 根拠のない嫌がらせの煽りは一切放置。
* 煽る方も煽られる方も、その原因は「自分」にあるということを自覚し、
スレ本来の主旨に沿って進行させることに努める。
* 基本はソース でカモン!!だが、バイナリでもOK。
テンプレ: 任意と書かれていない項目は必須のこと。
【タイトル】
【URL】
【ジャンル】
【ファイルサイズ】(任意)
【使用ソフト】
【コメント】
【転載】 (任意。デフォルト×。どうしてもどうしても転載して欲しい場合のみ○)
前スレ
まだ無いよ
★自作プログラム、評価してよスレッド」★1 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2015/12/23(水) 17:27:58.33ID:WSDJ3sSn
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
356片山博文MZ ◆T6xkBnTXz7B0
2016/08/15(月) 12:46:55.74ID:ZZZ997rF で、co_UserCreateWindowExだが、ザッと400行ほどあって、常人はかみ砕いていかないと理解できないだろう。
という訳でこの辺でウィンドウ作成コードの研究をいったんやめる。
という訳でこの辺でウィンドウ作成コードの研究をいったんやめる。
357デフォルトの名無しさん
2016/08/15(月) 13:46:44.33ID:X+HSvCFa ReactOSにはnotepad(メモ帳)のソースコードもある。
WindowsXP上では、このメモ帳で日本語入力が可能なので、攻略を試みたが、
このソースコード内には日本語入力に関する処理がない。
CreateWindowEx関数を呼ぶ際に第二引数に
WindowsXP上では、このメモ帳で日本語入力が可能なので、攻略を試みたが、
このソースコード内には日本語入力に関する処理がない。
CreateWindowEx関数を呼ぶ際に第二引数に
358デフォルトの名無しさん
2016/08/15(月) 13:48:40.43ID:X+HSvCFa 357の続き
"EDIT"を指定することで、エディター用のウインドウが作られ
このウインドウ内で日本語入力に関する処理をしているようだ。
"EDIT"を指定することで、エディター用のウインドウが作られ
このウインドウ内で日本語入力に関する処理をしているようだ。
359片山博文MZ ◆T6xkBnTXz7B0
2016/08/15(月) 13:52:56.53ID:ZZZ997rF 今度はメニューの作成コードを見るぞ。
win32ss\user\user32\windows\menu.cの840行目にCreateMenu APIがあり、これはNtUserxCreateMenuに丸投げしている。
win32ss\user\user32\include\ntwrapper.hの551行目にインライン関数NtUserxCreateMenuがあり、これはNtUserCallNoParam(NOPARAM_ROUTINE_CREATEMENU)を呼ぶだけだ。
NtUserCallNoParamの定義は、win32ss\user\ntuser\simplecall.cの58行目にあり、UserEnterExclusive();とUserLeave();の間でUserCreateMenuを呼んでいる。
win32ss\user\user32\windows\menu.cの840行目にCreateMenu APIがあり、これはNtUserxCreateMenuに丸投げしている。
win32ss\user\user32\include\ntwrapper.hの551行目にインライン関数NtUserxCreateMenuがあり、これはNtUserCallNoParam(NOPARAM_ROUTINE_CREATEMENU)を呼ぶだけだ。
NtUserCallNoParamの定義は、win32ss\user\ntuser\simplecall.cの58行目にあり、UserEnterExclusive();とUserLeave();の間でUserCreateMenuを呼んでいる。
360片山博文MZ ◆T6xkBnTXz7B0
2016/08/15(月) 13:57:04.85ID:ZZZ997rF UserCreateMenuはIntCreateMenuを呼ぶ。win32ss\user\ntuser\menu.cの741行目にIntCreateMenuの定義がある。
IntCreateMenuはUserCreateObjectを呼んでユーザーオブジェクトPMENUを作成し、初期化を行う。PMENUの定義はwin32ss\include\ntuser.hの382行目にある。
IntCreateMenuはUserCreateObjectを呼んでユーザーオブジェクトPMENUを作成し、初期化を行う。PMENUの定義はwin32ss\include\ntuser.hの382行目にある。
361片山博文MZ ◆T6xkBnTXz7B0
2016/08/15(月) 14:00:35.87ID:ZZZ997rF ここで重要なのは、ユーザーオブジェクトの作成には、排他制御が必要であることだ。
ユーザーオブジェクトを作成するコードは、必ずUserEnterExclusive();とUserLeave();の間に置かなければならない。
ユーザーオブジェクトを作成するコードは、必ずUserEnterExclusive();とUserLeave();の間に置かなければならない。
362↑
2016/08/16(火) 03:02:19.41ID:DfP2Zdwz FreeBASICスレの仕切り屋と同一人物w
363↑
2016/08/16(火) 03:54:58.12ID:DfP2Zdwz _ ∧_∧
 ̄  ̄ . (´Д`;)←>>361
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
 ̄  ̄ . (´Д`;)←>>361
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
364デフォルトの名無しさん
2016/08/16(火) 09:11:50.59ID:B95h7BkM VirtualBox上でReactOSを実行し、Guest Additionをインストール。
インストールがうまく行ったので、共有フォルダーを設定し、マイネットワークで開いてみる。
共有フォルダーは認識しているが、フォルダー内が表示されない。
ReactOSは、まだ、フォルダー共有は実装してないみたいだ。
インストールがうまく行ったので、共有フォルダーを設定し、マイネットワークで開いてみる。
共有フォルダーは認識しているが、フォルダー内が表示されない。
ReactOSは、まだ、フォルダー共有は実装してないみたいだ。
365デフォルトの名無しさん
2016/08/16(火) 12:00:46.15ID:l08xMeAe ReactOSにVC++2010Expressのインストールを試みた。
isoファイルをダウンロードして、VirtualBoxメニュー->デバイス->光学デバイスで、このファイルを指定。
マイコンピュータから開いてみると、なぜか、README.TXTしかない。
README.TXTには、このディスクはUDFフォーマットなので、ISO-13345 UDFファイルシステムのサポートが必要と書かれていた。
isoファイルをダウンロードして、VirtualBoxメニュー->デバイス->光学デバイスで、このファイルを指定。
マイコンピュータから開いてみると、なぜか、README.TXTしかない。
README.TXTには、このディスクはUDFフォーマットなので、ISO-13345 UDFファイルシステムのサポートが必要と書かれていた。
366↑
2016/08/16(火) 12:30:13.35ID:DfP2Zdwz FreeBASICスレの仕切り屋と同一人物w
367デフォルトの名無しさん
2016/08/16(火) 15:18:31.08ID:XsLmr0qy ReactOSのアプリケーションマネージャをみていると、開発カテゴリにWinspy++があった。
このWinspy++は個人が作ったものでMSとは関係ないようだ。
インストールはうまく行かなかったので、ホームページからダウンロードすることにした。
使ってみるとなかなかの出来たが、肝心のWindowsメッセージのトレース機能がない。
MS製のWinspy++は、VisualStudio Express版には含まれていないまずなので、
もし、Windowsメッセージのトレース機能があれば、かなり欲しい。
このWinspy++は個人が作ったものでMSとは関係ないようだ。
インストールはうまく行かなかったので、ホームページからダウンロードすることにした。
使ってみるとなかなかの出来たが、肝心のWindowsメッセージのトレース機能がない。
MS製のWinspy++は、VisualStudio Express版には含まれていないまずなので、
もし、Windowsメッセージのトレース機能があれば、かなり欲しい。
369↑
2016/08/17(水) 03:24:17.04ID:+njSpS9N ホォw
371デフォルトの名無しさん
2016/08/17(水) 10:50:49.46ID:N+7dAX4n 「MZ-IME日本語入力」に個人的にはレアなソースコードを見つけた。
setup.cpp328行目の
if (0 != DoSetRegistry1()) {
は、通常、比較演算子(!=)の右辺にリテラル(0)を書くのが一般的のはずだ。
しかし、a変数が0の場合かどうかのif文を書く場合
if (a = 0) {
と誤った場合を考えて、常に左辺にリテラルを書く人がいた。
1行のif文の場合でも{}を付けるのを見た時も思ったが、細かいこだわりのあるコードに思える。
setup.cpp328行目の
if (0 != DoSetRegistry1()) {
は、通常、比較演算子(!=)の右辺にリテラル(0)を書くのが一般的のはずだ。
しかし、a変数が0の場合かどうかのif文を書く場合
if (a = 0) {
と誤った場合を考えて、常に左辺にリテラルを書く人がいた。
1行のif文の場合でも{}を付けるのを見た時も思ったが、細かいこだわりのあるコードに思える。
372↑
2016/08/17(水) 12:01:37.93ID:+njSpS9N _ ∧_∧
 ̄  ̄ . (´Д`;)←>>371
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
 ̄  ̄ . (´Д`;)←>>371
. ' ヽ
/ //
/ //
,-( ヽ i /
/ メ、ヽ ヽ | /
/ ヽl | | /
/ // / ! ,
/∧_∧// /
/ ( ゚∀/ /
/ γ / /
θ ヘ | /
) | ,
/ |
/ ヘ | /
i / | | / / , ' _/ |l
/ / | | し' / / ̄/
/ /. / | ( _ / / 〃,
( / / l と と ) て ̄ /
し' /__) (_(_,J
373片山博文MZ ◆T6xkBnTXz7B0
2016/08/17(水) 13:41:54.88ID:2al+DBYZ キー入力を処理する関数は、win32ss\user\ntuser\keyboard.cの787行目のProcessKeyEventである。
gafAsyncKeyStateは、13行目にあり、これは非同期のキー状態を表しているようだ。
入力したキーがホットキーならば、824行目でco_UserProcessHotKeysが呼ばれ、
他に処理はされない。IntFixVkは247行目にあり、VK_SHIFTなどをVK_RSHIFTやVK_LSHIFTなどに変える関数だ。
gafAsyncKeyStateは、13行目にあり、これは非同期のキー状態を表しているようだ。
入力したキーがホットキーならば、824行目でco_UserProcessHotKeysが呼ばれ、
他に処理はされない。IntFixVkは247行目にあり、VK_SHIFTなどをVK_RSHIFTやVK_LSHIFTなどに変える関数だ。
374片山博文MZ ◆T6xkBnTXz7B0
2016/08/17(水) 13:43:04.85ID:2al+DBYZ 835行目でIntGetFocusMessageQueue関数が呼ばれる。
文字通り、フォーカスされたメッセージキューの取得である。
キューというのは待ち行列のことだ。キー入力は待ち行列で処理される。
PUSER_MESSAGE_QUEUEは、win32ss\user\ntuser\msgqueue.hの44行目で定義されている。
文字通り、フォーカスされたメッセージキューの取得である。
キューというのは待ち行列のことだ。キー入力は待ち行列で処理される。
PUSER_MESSAGE_QUEUEは、win32ss\user\ntuser\msgqueue.hの44行目で定義されている。
375片山博文MZ ◆T6xkBnTXz7B0
2016/08/17(水) 13:43:54.42ID:2al+DBYZ VK_SNAPSHOTは、[PrintScreen]キーを表している。
[PrintScreen]キーが押されていれば、keyboard.cの890行目あたりで
SnapWindowが呼ばれるはずだ。それ以外の場合、MsqPostMessageにより、
フォーカスのあるウィンドウ、あるいはアクティブなウィンドウに
キーメッセージがポストされる。
[PrintScreen]キーが押されていれば、keyboard.cの890行目あたりで
SnapWindowが呼ばれるはずだ。それ以外の場合、MsqPostMessageにより、
フォーカスのあるウィンドウ、あるいはアクティブなウィンドウに
キーメッセージがポストされる。
376片山博文MZ ◆T6xkBnTXz7B0
2016/08/17(水) 13:44:40.86ID:2al+DBYZ PTHREADINFO pti;というのは、スレッドの情報を表していると考えられる。
THREADINFO構造体の定義は、win32ss\user\ntuser\win32.hの82行目に見つかる。
メッセージキューの処理は、win32ss\user\ntuser\msgqueue.cに記述されている。
メッセージキュー関数のprefixはMsqだ。MsqPostQuitMessageなどのなじみの
ある処理も記述されているのがみられる。メッセージキューは
ユーザーオブジェクトではないが、参照カウントで管理されている。
THREADINFO構造体の定義は、win32ss\user\ntuser\win32.hの82行目に見つかる。
メッセージキューの処理は、win32ss\user\ntuser\msgqueue.cに記述されている。
メッセージキュー関数のprefixはMsqだ。MsqPostQuitMessageなどのなじみの
ある処理も記述されているのがみられる。メッセージキューは
ユーザーオブジェクトではないが、参照カウントで管理されている。
377片山博文MZ ◆T6xkBnTXz7B0
2016/08/17(水) 13:45:34.54ID:2al+DBYZ MsqPostMessageでポストされたキー入力メッセージはTranslateMessage APIにより、
WM_CHAR、WM_SYSCHARに変換される。その処理を行っているのが、
win32ss\user\ntuser\keyboard.cの1125行目のIntTranslateKbdMessageだ。
ここまで入力プロセスを見てきた。IMEを有効にするには、これらの処理のどこかで
IMEと対話するための中間処理を記述しなければいけない。
WM_CHAR、WM_SYSCHARに変換される。その処理を行っているのが、
win32ss\user\ntuser\keyboard.cの1125行目のIntTranslateKbdMessageだ。
ここまで入力プロセスを見てきた。IMEを有効にするには、これらの処理のどこかで
IMEと対話するための中間処理を記述しなければいけない。
378片山博文MZ ◆T6xkBnTXz7B0
2016/08/17(水) 13:53:25.61ID:MpsnqyQm keyboard.cのIntTranslateKbdMessageを見てみよう。1144行で関係ないメッセージは跳ね飛ばされる。
PsGetCurrentThreadWin32Threadでスレッド情報を取得して、
キーボードレイアウトとキーボードテーブルを参照する。
必要ならばpti->pClientInfo->hKLを更新し、キーボードテーブルがなければreturn FALSEする。
wParamがVK_PACKETならば特殊な処理を行う。
主処理はIntToUnicodeExで行われる。変換を行った文字は、
MsqPostMessageでWM_CHAR、WM_SYSCHAR、WM_DEADCHAR、もしくは
WM_SYSDEADCHARとしてメッセージキューへポストされる。
PsGetCurrentThreadWin32Threadでスレッド情報を取得して、
キーボードレイアウトとキーボードテーブルを参照する。
必要ならばpti->pClientInfo->hKLを更新し、キーボードテーブルがなければreturn FALSEする。
wParamがVK_PACKETならば特殊な処理を行う。
主処理はIntToUnicodeExで行われる。変換を行った文字は、
MsqPostMessageでWM_CHAR、WM_SYSCHAR、WM_DEADCHAR、もしくは
WM_SYSDEADCHARとしてメッセージキューへポストされる。
379片山博文MZ ◆T6xkBnTXz7B0
2016/08/17(水) 13:59:32.04ID:MpsnqyQm380片山博文MZ ◆T6xkBnTXz7B0
2016/08/17(水) 14:01:34.42ID:MpsnqyQm 訂正。
(誤) keybd_event
(正) SendInput
スクリーンキーボードのソースは、base\applications\oskにある。
(誤) keybd_event
(正) SendInput
スクリーンキーボードのソースは、base\applications\oskにある。
381デフォルトの名無しさん
2016/08/17(水) 14:53:52.96ID:N+7dAX4n >>379
英語の読解力がなくてよくわからないけど、
ロシア版ReactOSをインストールして、英語キーボードを選択したらこの問題が起きると書いているのでしょうか?
数日前にダウンロードした日本語版ReactOSを使っているけど、日本語配列と英語配列のキーボードを変えると、その言語のスクリーンキーボードに切り替える。
英語の読解力がなくてよくわからないけど、
ロシア版ReactOSをインストールして、英語キーボードを選択したらこの問題が起きると書いているのでしょうか?
数日前にダウンロードした日本語版ReactOSを使っているけど、日本語配列と英語配列のキーボードを変えると、その言語のスクリーンキーボードに切り替える。
382デフォルトの名無しさん
2016/08/17(水) 15:02:19.19ID:N+7dAX4n 英語はまったくダメなので、よければついでに英語について教えてください。
On-screen keyboard should respect selected input language
は、
On-screen Keyboardは、選択されたinput languageに従うべきだ。
と訳すと思うけど、
On-screen Keyboardは、選択されたinput languageに従うだろう。
とも訳せると思う。
shouldを...べきだと訳す場合と、...だろうと訳す場合の違いはどこにあります?
On-screen keyboard should respect selected input language
は、
On-screen Keyboardは、選択されたinput languageに従うべきだ。
と訳すと思うけど、
On-screen Keyboardは、選択されたinput languageに従うだろう。
とも訳せると思う。
shouldを...べきだと訳す場合と、...だろうと訳す場合の違いはどこにあります?
383片山博文MZ ◆T6xkBnTXz7B0
2016/08/17(水) 15:09:42.69ID:GiBHZvBN > Default selected input language for my russian installation of ReactOS is english.
(訳) ロシア語でインストールした私のReactOSに対する既定の選択された入力言語は英語だ。
> When I try to use osk.exe, I see only russian letters and can't switch it to english mode.
(訳) oskを試したとき、ロシア語の文字しか見えず、英語モードに切り替えられなかった。
(訳) ロシア語でインストールした私のReactOSに対する既定の選択された入力言語は英語だ。
> When I try to use osk.exe, I see only russian letters and can't switch it to english mode.
(訳) oskを試したとき、ロシア語の文字しか見えず、英語モードに切り替えられなかった。
384片山博文MZ ◆T6xkBnTXz7B0
2016/08/17(水) 15:12:29.63ID:GiBHZvBN > On-screen keyboard should respect selected input language
(訳) スクリーンキーボードは選択済みの入力言語を尊重すべきだ
(訳) スクリーンキーボードは選択済みの入力言語を尊重すべきだ
385デフォルトの名無しさん
2016/08/17(水) 15:26:35.96ID:N+7dAX4n386片山博文MZ ◆T6xkBnTXz7B0
2016/08/17(水) 15:55:25.36ID:GiBHZvBN 入力言語を変えるダイアログのコードはdll\cpl\inputにある。
実際に変える処理をしているのは
dll\cpl\input\input_list.cの220行目のInputList_Processだ。
実際に変える処理をしているのは
dll\cpl\input\input_list.cの220行目のInputList_Processだ。
387片山博文MZ ◆T6xkBnTXz7B0
2016/08/17(水) 15:59:14.37ID:GiBHZvBN 263行目、WM_INPUTLANGCHANGEREQUESTメッセージをシステム全体に送信している。
388片山博文MZ ◆T6xkBnTXz7B0
2016/08/17(水) 15:59:32.95ID:GiBHZvBN 263行目、WM_INPUTLANGCHANGEREQUESTメッセージをシステム全体にポストしている。
389デフォルトの名無しさん
2016/08/17(水) 21:47:04.72ID:5v1oTvvU shouldは、仮定法だから、だろうと訳すことは、ない。
そうなるべきであるにもかかわらず、実際は、そうなってない。
you shouldになってたら、
してないじゃないか。なぜしないのか。したほうがいいという感じになる
そうなるべきであるにもかかわらず、実際は、そうなってない。
you shouldになってたら、
してないじゃないか。なぜしないのか。したほうがいいという感じになる
390片山博文MZ ◆T6xkBnTXz7B0
2016/08/18(木) 03:11:04.01ID:b4WBSJ45 IMEをインストールするとレジストリはどうなる?
IMEの正当性のチェック方法は? IMEの読み込み方法は? 読み込むのはいつ?
入力コンテキストの作成と破棄はいつ? 入力コンテキストはどこにどのように関連付けされるか?
キーボードレイアウトを読み込むときIMEはどうなる? キーボードレイアウトの切り替えをどうやる? キーボードレイアウトがIMEであることの判定方法は?
IMEの正当性のチェック方法は? IMEの読み込み方法は? 読み込むのはいつ?
入力コンテキストの作成と破棄はいつ? 入力コンテキストはどこにどのように関連付けされるか?
キーボードレイアウトを読み込むときIMEはどうなる? キーボードレイアウトの切り替えをどうやる? キーボードレイアウトがIMEであることの判定方法は?
391片山博文MZ ◆T6xkBnTXz7B0
2016/08/18(木) 03:18:36.86ID:b4WBSJ45 IMMはIMEをどこにどのようにロードする? そのタイミングは?
IMMはどうやってIME/Appと通信を行う? そのタイミングは?
IMM/IMEはメッセージキューをどのように使う?
user32.dllとimm32.dllの関係はどうなっている?
コントロールパネルの入力言語設定でどうやってIMEを切り替える?
IMMはどうやってIME/Appと通信を行う? そのタイミングは?
IMM/IMEはメッセージキューをどのように使う?
user32.dllとimm32.dllの関係はどうなっている?
コントロールパネルの入力言語設定でどうやってIMEを切り替える?
392片山博文MZ ◆T6xkBnTXz7B0
2016/08/18(木) 03:24:11.68ID:b4WBSJ45 ReactOSで日本語入力するためには、IMMを実装しないといけない。
それもWindows2000とある程度互換性のある実装でなければならない。
正しい実装かどうか確認するには、やはりテストするしかない。
それもWindows2000とある程度互換性のある実装でなければならない。
正しい実装かどうか確認するには、やはりテストするしかない。
393デフォルトの名無しさん
2016/08/18(木) 09:44:40.13ID:oszSDXXJ >>389
ありがとうございます。
仮定法のshouldの場合、してないじゃないか。なぜしないのか。したほうがいい。という感じと覚えます。
仮定法についても、もう少し聞きたいのですが、その前に、
英語についてインターネットで調べている時、マッカーサが
ありがとうございます。
仮定法のshouldの場合、してないじゃないか。なぜしないのか。したほうがいい。という感じと覚えます。
仮定法についても、もう少し聞きたいのですが、その前に、
英語についてインターネットで調べている時、マッカーサが
394デフォルトの名無しさん
2016/08/18(木) 09:46:34.36ID:oszSDXXJ 393の続き
「I shall return」と言ったというのを見ました。
willを使わなかったのは、強い意思や使命感の現れと書いてました。
On-screen keyboard should respect selected input language
でwouldを使ってないのは、
この人は、「出来てて当然なのに、なんで出来てないんだよ」という気持ちがあるということなのでしょうか?
それとも、
case 1.この文はwouldには置き換えられない。
case 2.shouldの方がwouldより、強い口調になるが、仲間内でwouldを使うとかえって他人行儀になる。
case 3.この文では、shouldとwouldのどちらを使っても違いがない。
のケースに当てはまるのでしょうか?
「I shall return」と言ったというのを見ました。
willを使わなかったのは、強い意思や使命感の現れと書いてました。
On-screen keyboard should respect selected input language
でwouldを使ってないのは、
この人は、「出来てて当然なのに、なんで出来てないんだよ」という気持ちがあるということなのでしょうか?
それとも、
case 1.この文はwouldには置き換えられない。
case 2.shouldの方がwouldより、強い口調になるが、仲間内でwouldを使うとかえって他人行儀になる。
case 3.この文では、shouldとwouldのどちらを使っても違いがない。
のケースに当てはまるのでしょうか?
395デフォルトの名無しさん
2016/08/18(木) 11:06:41.32ID:oszSDXXJ >>390-392
Windowsの内部構造について考える機会がなく、ReactOSを知って初めて内部構造を意識するようになった。
当初、imm32.dllとimeがあれば、日本語入力ができるものかと考えてた。
しかし、そんな単純なものではないことがわかった。
wine(Windowsエミュレータ)のメモ帳では日本語入力ができた。
wineのimm.cを見ると最終的にはXIMプロトコルを使って日本語入力していることがわかった。
ただ、wineがwindows2000の日本語入力と互換性を考えて書かれているのかどうはわからない。
自分にはゴール地点が見えない。
Windowsの内部構造について考える機会がなく、ReactOSを知って初めて内部構造を意識するようになった。
当初、imm32.dllとimeがあれば、日本語入力ができるものかと考えてた。
しかし、そんな単純なものではないことがわかった。
wine(Windowsエミュレータ)のメモ帳では日本語入力ができた。
wineのimm.cを見ると最終的にはXIMプロトコルを使って日本語入力していることがわかった。
ただ、wineがwindows2000の日本語入力と互換性を考えて書かれているのかどうはわからない。
自分にはゴール地点が見えない。
397片山博文MZ ◆T6xkBnTXz7B0
2016/08/18(木) 12:59:48.76ID:BblHlrmj キーボードレイアウトの型PKLは、win32ss\user\ntuser\input.hの
26行目に定義されている。この定義は線形リストのようにも見える。
最後のメンバーPIMEINFOEX piiexはIMEの情報を表しているようだ。
PIMEINFOEXは、win32ss\include\ntuser.hの1151行目に定義されている。
IMEINFOは、sdk\include\psdk\imm.hに定義済みだ。
win32ss\user\ntuser\ntstubs.cに実装されるべきスタブ関数がある。
NtUserCreateInputContextなど、名前からは入力コンテキストに関係が
ありような関数も見られる。関数の型がわからないので、実装は困難を極める。
直接的な逆工学は禁止なので、今のところ、関数名から推定するしかない。
26行目に定義されている。この定義は線形リストのようにも見える。
最後のメンバーPIMEINFOEX piiexはIMEの情報を表しているようだ。
PIMEINFOEXは、win32ss\include\ntuser.hの1151行目に定義されている。
IMEINFOは、sdk\include\psdk\imm.hに定義済みだ。
win32ss\user\ntuser\ntstubs.cに実装されるべきスタブ関数がある。
NtUserCreateInputContextなど、名前からは入力コンテキストに関係が
ありような関数も見られる。関数の型がわからないので、実装は困難を極める。
直接的な逆工学は禁止なので、今のところ、関数名から推定するしかない。
398片山博文MZ ◆T6xkBnTXz7B0
2016/08/18(木) 13:15:44.65ID:BblHlrmj400片山博文MZ ◆T6xkBnTXz7B0
2016/08/18(木) 13:38:56.18ID:BblHlrmj 教育用英和辞書には、英単語の意味が詳しく書かれているはずだ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 ★2 [蚤の市★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★7 [蚤の市★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★2 [蚤の市★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 【悲報】女がやたら言う「清潔感」の意味がわからない
- この時間のおまえらって異常性癖多そうだよな
- 【朗報】南鳥島のレアアース、中国産の「20倍の純度」青山繁晴氏「日本は資源大国」日本復活のファンファーレが鳴り響く! [673057929]
- 愛国者「釘を使わない日本独自の伝統工法スゴイ!」X民「それ中国起源ですよ」→批判殺到 [834922174]
- (´・ω・`)なんで寝ないの?
- 口角炎痛すぎ
