★自作プログラム、評価してよスレッド」★1 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2015/12/23(水) 17:27:58.33ID:WSDJ3sSn
みなさんのオリジナルプログラムを、プログラム板のみなさんが優しく、時に厳しく、評価してくれるよ。

推奨アップローダー: リンク先の注意事項を良く読んで利用して下さい。
自分で見つけろボケカス!!

注意事項
* 荒らしは徹底スルー。厳守でお願いします。
* ファイル形式とサイズを書く親切。
* URL にジャンルやプログラムのアピールを添えればレスがたくさん貰えるかも。
* 他人に優しく、己に厳しく。叩かれても気にしない。
* 根拠のない嫌がらせの煽りは一切放置。
* 煽る方も煽られる方も、その原因は「自分」にあるということを自覚し、
 スレ本来の主旨に沿って進行させることに努める。
* 基本はソース でカモン!!だが、バイナリでもOK。

テンプレ: 任意と書かれていない項目は必須のこと。
【タイトル】
【URL】
【ジャンル】
【ファイルサイズ】(任意)
【使用ソフト】
【コメント】
【転載】 (任意。デフォルト×。どうしてもどうしても転載して欲しい場合のみ○)

前スレ
まだ無いよ
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は、関数ポインターを所有する構造体の配列だ。
341デフォルトの名無しさん
垢版 |
2016/08/14(日) 17:39:01.93ID:BNnLSgEf
filebrowser.exe(エクスプローラ?) ... フォルダーオプションメニューがグレイアウトしてクリックできなかったこと以外、
特に気になった点はない。ただ、ReactOSで起動したときと違うようなので、バージョンの違いなのか、OSの違いなのかは不明。
終了ボタンを押すと「問題が発生したため、・・・」のダイアログが表示される。
342デフォルトの名無しさん
垢版 |
2016/08/14(日) 17:40:37.23ID:BNnLSgEf
RosBE(ReactOS構築環境)のインストールが終わり、ReactOSのコンパイルをしてみた。
自分で、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で特別なことをしているのかもしれない。
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の順で見ることを推奨
347デフォルトの名無しさん
垢版 |
2016/08/14(日) 18:02:27.83ID:BNnLSgEf
>>339
なるほど!ユーザーオブジェクトが理解できれば話の流れがつかめます
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と内部関数は多少動作が違うが、似た動作になっている。
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行目にある。
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行目。
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();
の間のコードは特別な意味がある。
2016/08/15(月) 11:44:56.59ID:ZZZ997rF
UserEnterExclusive();とUserLeave(); の間は「排他制御」(はいたせいぎょ)の区間である。
ReactOSはマルチスレッドOSなので、1つのデータや資源に複数のスレッドからアクセスされることがある。
そのとき、同時にアクセスされたために読み書きされた内容がおかしくなる可能性がある。それを防ぐために、データや資源へのアクセスにロックを掛けて、ロックされているときはロックが解除されるまで待つという機構が排他制御である。
353
垢版 |
2016/08/15(月) 11:49:28.11ID:f5ijFLi5
おかしくなる可能性があるw
2016/08/15(月) 12:29:50.36ID:ZZZ997rF
カーネル内部で使用できるRtl関数の定義は、sdk\lib\rtlにある。
メモリー初期化用のRtlZeroMemoryや、Unicode文字列の初期化のRtlInitUnicodeStringなどが見付かるだろう。
355
垢版 |
2016/08/15(月) 12:31:13.67ID:f5ijFLi5
                _                           ∧_∧
               ̄   ̄  .                       (´Д`;)←>>354
        . '            ヽ
       /                                    //
      /                                  //
           ,-( ヽ         i               /
    /       メ、ヽ ヽ          |               /
          /  ヽl  |        |            /
        /    // /        !          ,
       /∧_∧// /
     / ( ゚∀/ /
    /   γ    /         /
  θ     ヘ    |        /
         )   |       ,
         /     |
         /  ヘ   |   /
        i  / |  |  /  /   , '    _/  |l
       /  /   |  |    し'   /      / ̄/
      /  /.  /  |       (   _   /  /   〃,
     (  /   /  l  と と )  て ̄          /
     し'   /__) (_(_,J
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関数を呼ぶ際に第二引数に
358デフォルトの名無しさん
垢版 |
2016/08/15(月) 13:48:40.43ID:X+HSvCFa
357の続き
"EDIT"を指定することで、エディター用のウインドウが作られ
このウインドウ内で日本語入力に関する処理をしているようだ。
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を呼んでいる。
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行目にある。
2016/08/15(月) 14:00:35.87ID:ZZZ997rF
ここで重要なのは、ユーザーオブジェクトの作成には、排他制御が必要であることだ。
ユーザーオブジェクトを作成するコードは、必ず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
364デフォルトの名無しさん
垢版 |
2016/08/16(火) 09:11:50.59ID:B95h7BkM
VirtualBox上でReactOSを実行し、Guest Additionをインストール。
インストールがうまく行ったので、共有フォルダーを設定し、マイネットワークで開いてみる。
共有フォルダーは認識しているが、フォルダー内が表示されない。
ReactOSは、まだ、フォルダー共有は実装してないみたいだ。
365デフォルトの名無しさん
垢版 |
2016/08/16(火) 12:00:46.15ID:l08xMeAe
ReactOSにVC++2010Expressのインストールを試みた。
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メッセージのトレース機能があれば、かなり欲しい。
2016/08/16(火) 22:06:11.12ID:7lLs41/g
>>367
Winspector Spyというツールがあるよ
369
垢版 |
2016/08/17(水) 03:24:17.04ID:+njSpS9N
ホォw
370デフォルトの名無しさん
垢版 |
2016/08/17(水) 09:08:40.51ID:N+7dAX4n
>>368
ありがとう

>>367
MS製の
×Winspy++
○Spy++
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文の場合でも{}を付けるのを見た時も思ったが、細かいこだわりのあるコードに思える。
372
垢版 |
2016/08/17(水) 12:01:37.93ID:+njSpS9N
                _                           ∧_∧
               ̄   ̄  .                       (´Д`;)←>>371
        . '            ヽ
       /                                    //
      /                                  //
           ,-( ヽ         i               /
    /       メ、ヽ ヽ          |               /
          /  ヽl  |        |            /
        /    // /        !          ,
       /∧_∧// /
     / ( ゚∀/ /
    /   γ    /         /
  θ     ヘ    |        /
         )   |       ,
         /     |
         /  ヘ   |   /
        i  / |  |  /  /   , '    _/  |l
       /  /   |  |    し'   /      / ̄/
      /  /.  /  |       (   _   /  /   〃,
     (  /   /  l  と と )  て ̄          /
     し'   /__) (_(_,J
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などに変える関数だ。
2016/08/17(水) 13:43:04.85ID:2al+DBYZ
835行目でIntGetFocusMessageQueue関数が呼ばれる。
文字通り、フォーカスされたメッセージキューの取得である。
キューというのは待ち行列のことだ。キー入力は待ち行列で処理される。
PUSER_MESSAGE_QUEUEは、win32ss\user\ntuser\msgqueue.hの44行目で定義されている。
2016/08/17(水) 13:43:54.42ID:2al+DBYZ
VK_SNAPSHOTは、[PrintScreen]キーを表している。
[PrintScreen]キーが押されていれば、keyboard.cの890行目あたりで
SnapWindowが呼ばれるはずだ。それ以外の場合、MsqPostMessageにより、
フォーカスのあるウィンドウ、あるいはアクティブなウィンドウに
キーメッセージがポストされる。
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などのなじみの
ある処理も記述されているのがみられる。メッセージキューは
ユーザーオブジェクトではないが、参照カウントで管理されている。
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と対話するための中間処理を記述しなければいけない。
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としてメッセージキューへポストされる。
2016/08/17(水) 13:59:32.04ID:MpsnqyQm
【練習問題】
CORE-10064を解決せよ。
https://jira.reactos.org/browse/CORE-10064
これはkeybd_eventのスキャンコード処理の問題だ。
2016/08/17(水) 14:01:34.42ID:MpsnqyQm
訂正。
(誤) keybd_event
(正) SendInput

スクリーンキーボードのソースは、base\applications\oskにある。
381デフォルトの名無しさん
垢版 |
2016/08/17(水) 14:53:52.96ID:N+7dAX4n
>>379
英語の読解力がなくてよくわからないけど、
ロシア版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を...べきだと訳す場合と、...だろうと訳す場合の違いはどこにあります?
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を試したとき、ロシア語の文字しか見えず、英語モードに切り替えられなかった。
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+7dAX4n
>>382-384
ありがとうございます。
英語が読めないのはかなり壁です。
2016/08/17(水) 15:55:25.36ID:GiBHZvBN
入力言語を変えるダイアログのコードはdll\cpl\inputにある。
実際に変える処理をしているのは
dll\cpl\input\input_list.cの220行目のInputList_Processだ。
2016/08/17(水) 15:59:14.37ID:GiBHZvBN
263行目、WM_INPUTLANGCHANGEREQUESTメッセージをシステム全体に送信している。
2016/08/17(水) 15:59:32.95ID:GiBHZvBN
263行目、WM_INPUTLANGCHANGEREQUESTメッセージをシステム全体にポストしている。
389デフォルトの名無しさん
垢版 |
2016/08/17(水) 21:47:04.72ID:5v1oTvvU
shouldは、仮定法だから、だろうと訳すことは、ない。
そうなるべきであるにもかかわらず、実際は、そうなってない。

you shouldになってたら、
してないじゃないか。なぜしないのか。したほうがいいという感じになる
2016/08/18(木) 03:11:04.01ID:b4WBSJ45
IMEをインストールするとレジストリはどうなる?
IMEの正当性のチェック方法は? IMEの読み込み方法は? 読み込むのはいつ?
入力コンテキストの作成と破棄はいつ? 入力コンテキストはどこにどのように関連付けされるか?
キーボードレイアウトを読み込むときIMEはどうなる? キーボードレイアウトの切り替えをどうやる? キーボードレイアウトがIMEであることの判定方法は?
2016/08/18(木) 03:18:36.86ID:b4WBSJ45
IMMはIMEをどこにどのようにロードする? そのタイミングは?
IMMはどうやってIME/Appと通信を行う? そのタイミングは?
IMM/IMEはメッセージキューをどのように使う?
user32.dllとimm32.dllの関係はどうなっている?
コントロールパネルの入力言語設定でどうやってIMEを切り替える?
2016/08/18(木) 03:24:11.68ID:b4WBSJ45
ReactOSで日本語入力するためには、IMMを実装しないといけない。
それもWindows2000とある程度互換性のある実装でなければならない。
正しい実装かどうか確認するには、やはりテストするしかない。
393デフォルトの名無しさん
垢版 |
2016/08/18(木) 09:44:40.13ID:oszSDXXJ
>>389
ありがとうございます。
仮定法の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のどちらを使っても違いがない。
のケースに当てはまるのでしょうか?
395デフォルトの名無しさん
垢版 |
2016/08/18(木) 11:06:41.32ID:oszSDXXJ
>>390-392
Windowsの内部構造について考える機会がなく、ReactOSを知って初めて内部構造を意識するようになった。
当初、imm32.dllとimeがあれば、日本語入力ができるものかと考えてた。
しかし、そんな単純なものではないことがわかった。
wine(Windowsエミュレータ)のメモ帳では日本語入力ができた。
wineのimm.cを見ると最終的にはXIMプロトコルを使って日本語入力していることがわかった。
ただ、wineがwindows2000の日本語入力と互換性を考えて書かれているのかどうはわからない。
自分にはゴール地点が見えない。
2016/08/18(木) 12:56:47.11ID:BblHlrmj
>>379
自己解決。usetupの言語の登録順が逆だった。
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など、名前からは入力コンテキストに関係が
ありような関数も見られる。関数の型がわからないので、実装は困難を極める。
直接的な逆工学は禁止なので、今のところ、関数名から推定するしかない。
2016/08/18(木) 13:15:44.65ID:BblHlrmj
【練習問題】
https://jira.reactos.org/browse/CORE-9692
のサブタスクのいずれかを解決せよ。
2016/08/18(木) 13:37:01.37ID:BblHlrmj
>>394
case 1。shouldは「べき」で覚えれば間違いない。
2016/08/18(木) 13:38:56.18ID:BblHlrmj
教育用英和辞書には、英単語の意味が詳しく書かれているはずだ。
401デフォルトの名無しさん
垢版 |
2016/08/18(木) 13:40:26.23ID:KMSpo5SC
>>399
んじゃゲームパッドの場合はどうなるんだ?w
2016/08/18(木) 13:47:38.09ID:tfwpzgEb
IMEの文書についてはこちらを参照。
https://github.com/katahiromz/mzimeja/tree/master/doc

IMEファイルはDLLファイルでもある。IMEの読み込みではDLLとして、
LoadLibrary[Ex]/GetProcAddressか、その内部関数が使われるはずだ。
ime-api_ja.pdfを参照すると、ImeInquire、ImeConversionList、ImeConfigure、
ImeDestroy、ImeEscape、ImeSetActiveContext、ImeProcessKey、NotifyIME、
ImeSelect、ImeSetCompositionString、ImeToAsciiEx、ImeRegisterWord、
ImeUnregisterWord、ImeGetRegisterWordStyle、ImeEnumRegisterWord、
ImeGetImeMenuItemsなどといったたくさんの関数をGetProcAddressで
取得する必要がある。
403デフォルトの名無しさん
垢版 |
2016/08/18(木) 13:48:52.20ID:KMSpo5SC
で、ゲームパッドの場合はどうなるんだ?w
2016/08/18(木) 14:31:17.10ID:KMSpo5SC
まあ、MZうyちゃーーーん♪がどんなブロック崩しを作るか楽しみにしてるよw
本人のセンスが出やすいw
2016/08/18(木) 14:41:28.47ID:b4WBSJ45
成り済まし、妄想癖、ストーカーが激しいので、絶交です。
2016/08/18(木) 14:52:27.11ID:KMSpo5SC
んじゃ本スレで(^。^)
http://echo.2ch.net/test/read.cgi/tech/1471397746/
2016/08/18(木) 16:10:40.62ID:b4WBSJ45
サブタスク1つにつき30000円。俺より早く解決できるか。早い者勝ち。
2016/08/18(木) 16:19:35.29ID:KMSpo5SC
ばっかみたいw
2016/08/18(木) 16:27:29.49ID:b4WBSJ45
もちろん協力プレイもOKだ。だれが手柄を取るかは相談の上。
2016/08/18(木) 16:40:41.83ID:b4WBSJ45
直接的な逆工学というのは、コードを盗むことを目的に対象の実機のWindowsに由来するコードを逆アセンブルないしは逆コンパイルすることだ。
第三者の誰かが書いた本やサイトを参考にしたなら、いつどこで何を参考にしたという(裁判所に提出できる)記録があればOKになる。
411デフォルトの名無しさん
垢版 |
2016/08/18(木) 16:56:58.64ID:I/wwwK/X
>>405
自分が書き込んだものと、違う人が書き込んだものを説明しても納得してもらえないでしょう。
381、382の書き込みがいけなかったことはわかるけど、まじめに学校で勉強してない人でもプログラムが好きな人はいます。
馬鹿げた質問に見えるかも知れませんが、まじめな質問です。自演自作はしてません。
また、この書き込みの後に悪ふざけの書き込みをする人がいるでしょう。
なので、もう書き込みませんが、プログラム好きが本当だと証明するために
zzzyyyzzz56
でgoogle検索をしてみてください。
ニコニコ動画にこのIDで上がっている動画は、自分がアップした動画です。
2016/08/18(木) 16:59:46.97ID:b4WBSJ45
『Inside Windows』というWindows解析本は有名だが、IMEについては『Inside IME』みたいな解析本は知られていない。もしあれば教えて欲しいものである。
2016/08/18(木) 17:06:20.41ID:b4WBSJ45
>>411
絶交は、君に対してではなく通称オフィスマのことだ。君は気にしなくていい。
英語がわからなければある程度は教えよう。
2016/08/18(木) 17:15:52.53ID:b4WBSJ45
俺にはIDが見えている。だから特定はだいたい出来ている。人間違いを避けたいなら、名前欄に「2ちゃんねるトリップ」と呼ばれるものをつけるといい。
2016/08/18(木) 17:26:13.92ID:KMSpo5SC
>>412
んじゃDirectX解析本よろ♪(ギャハハ!!wwww”
2016/08/18(木) 17:30:04.86ID:b4WBSJ45
>>411
言葉が足りなかったようで、すまない。君を絶交した訳ではない。悪いのはオフィスマだ。許してくれ。
417 ◆/oPdM2GV7Q
垢版 |
2016/08/18(木) 17:31:15.18ID:I/wwwK/X
>>413-414
2ちゃんねるトリップのテスト書き込み。
うまくいってたらこのトリップで参加します。
418 ◆/oPdM2GV7Q
垢版 |
2016/08/18(木) 17:39:13.47ID:I/wwwK/X
>>416
許すも何も、あの流れを自演自作でされたら自分なら怒るので、片山さんは怒っているのだろうなぁと思っただけです。

389も当然自演ではないので、好意的に見ている人もいるのだなぁと感じました。
2016/08/18(木) 17:46:43.69ID:b4WBSJ45
intlは国際的(international)の略語で、i18nは国際化(internationalization)の略語だ。langは言語(language)の略だ。cplはcontrol panelの略だ。
プログラミングにおいてはこうした略語や用語を知っていると役に立つ。
2016/08/18(木) 17:54:48.96ID:b4WBSJ45
よく使われるメカニズムはだれかが理解、もしくは解析しておかないと技術が廃れてしまう。
日本では、巨大企業を恐れて合法的に解析しようと考える人がいなかった。
それが技術の進歩への乗り遅れになり、現在の日本のソフトウェア業界がある。
2016/08/18(木) 18:06:05.22ID:KMSpo5SC
つまり、完成品は永久にできない、っとw
2016/08/18(木) 18:19:54.42ID:b4WBSJ45
ReactOSチームには静的解析のプロが居る。実装が間違っているかどうかは、何とかして確かめることが可能だ。
DirectXはドライバー以外はほとんど解析済みだ。
2016/08/18(木) 18:26:09.94ID:b4WBSJ45
ただ、彼らは日本語Windows2000や日本語キーボードを持っていない。中古で買ってプレゼントすることを考えている。
2016/08/18(木) 18:35:11.76ID:KMSpo5SC
Yahoo!プログラミング言語検索ランキング(今回2016/08/18、前回2013/03/18)

《一般カテゴリ》
. 1(. 1) HTML......  約224,3000万件(約252,7000万件)  -11.23%
. 2(. 2) PHP..    約100,2000万件(約195,6000万件)  -48.77%
. 3(--) JavaScript..約. 17,3000万件(-------------.)   ----
. 4(. 4) BASIC.    約. 15,3000万件(約  3,2600万件). +369.32%
. 5(. 3) CGI      約  6,0300万件(約. 13,7000万件)  -55.98%
. 6(. 7) JAVA    .約  5,5800万件(約  1,6800万件). +232.14%
. 7(. 5) FORTH...  約  2,6200万件(約  2,2400万件)  +16.96%
. 8(. 6) C言語(*1) 約  2,4040万件(約  2,0567万件)  +16.88% (*1)C言語、C++、C#の検索件数の合計
. 9(. 8) PYTHON   約  1,5800万件(約  1,5800万件)  ±0.00%
10(. 9) PASCAL... 約  1,5400万件(約  1,5400万件)  ±0.00%
11(10) DELPHI..  約   9760万件(約  1,2200万件)  -20.00%
12(12) IL.        約   7556万件(約   6498万件)  +16.28% (*2)CILとCLRとMSILの検索件数の合計
13(11) PERL...   約   5830万件(約  1,0500万件)  -44.47%
14(13) HSP..    約   2150万件(約   2090万件).  +2.87%
15(14) PROLOG......約   1230万件(約   1360万件).  -9.55%
16(15) LISP.    約   1070万件(約   1340万件)  -20.14%
17(16) FORTRAN.. 約   1050万件(約   1300万件)  -19.23%
18(17) COBOL..  約.    915万件(約   1110万件)  -17.56%
2016/08/18(木) 18:35:58.21ID:KMSpo5SC
《BASIC言語カテゴリ》
. 1(--) Apple Swift.....約. 46,600,000件(.-------------.)   ---- [ ※参考 ] (*3)Apple Objective-Cからの置き換え
. 2(. 2) VisualBasic . .約. 36,300,000件(約. 74,800,000件) -51.47%
. 3(. 4) Objective-C. 約. 19,810,000件(約. 19,020,000件).  +4.15%. [ ※参考 ] (*4)obj-cとobjective-cの検索件数の合計
. 4(. 3) Visual C++..... 約. 16,380,000件(約. 30,160,000件) -45.68%. [ ※参考 ] (*5)VC++とVisual C++の検索件数の合計
. 5(. 1) AGK      約. 12,060,000件(約165,640,000件) -92.71%. (*6)AGKとApp Game Kitの検索件数の合計
. 6(. 5) QBASIC.    約  1,010,000件(約  2,030,000件) -50.24%
. 7(. 6) SmallBasic.  約   657,000件(約   882,000件) -25.51%
. 8(. 7) X-BASIC  ..約   431,000件(約   628,000件) -31.36% (*7)XBASICの検索件数(iPad、iPhone向けX68000用BASIC)
. 9(10) プチコン.    約   386,500件(約   319,500件) -20.97% (*8)PetitComputerの検索件数含む合計
10(--) DXライブラリ..約   321,000件(.-------------.)   ---- [ ※参考 ] (*9)VC++用ゲーム向け補助ライブラリー
11(. 9) DarkBASIC.....約   280,000件(約   398,000件) -29.64%
12(11) BasicStudio....約   267,000件(約   300,000件) -11.00%
13(14) MSX-BASIC..約   176,000件(約.   89,800件) +95.99%
14(16) 99BASIC.   約.    81,700件(約.   51,200件) +59.57%
15(12) N88-BASIC....約.    70,400件(約   125,000件) -43.68%
16(15) BASIC-256. 約.    37,500件(約.   71,100件) -47.25% (*10)BASIC256の検索件数
17(. 8) GLbasic     約.    23,800件(約   586,000件) -95.93%
18(--) DarkGDK ......約.    23,300件(.-------------.)   ---- [ ※参考 ] (*11)VC++用ゲーム向け補助ライブラリー
19(13) Hu-BASIC... 約.    13,100件(約.   97,800件) -86.60% (*12)HuBASICの検索件数
20(17) CBM-BASIC 約     2,340件(約.   12,800件) -81.71% (*13)CBMBASICの検索件数
2016/08/18(木) 18:36:26.46ID:KMSpo5SC
注釈
(*1)(*2)(*4)(*5)(*6)(*8)複数検索合計によるもの
(*3)Apple社の基幹開発ツール
(*7)(*10)(*12)(*13)無関係な流行が検索に混在しているものは、少ない方を選ぶ
(*9)(*11)業務用ミドルウェアツールとは無関係
2016/08/19(金) 07:26:27.95ID:8R0cm8hF
CORE-10029を解決しました。
428デフォルトの名無しさん
垢版 |
2016/08/19(金) 12:19:24.48ID:Lou4DPqB
                _                           ∧_∧
               ̄   ̄  .                       (´Д`;)←>>427
        . '            ヽ
       /                                    //
      /                                  //
           ,-( ヽ         i               /
    /       メ、ヽ ヽ          |               /
          /  ヽl  |        |            /
        /    // /        !          ,
       /∧_∧// /
     / ( ゚∀/ /
    /   γ    /         /
  θ     ヘ    |        /
         )   |       ,
         /     |
         /  ヘ   |   /
        i  / |  |  /  /   , '    _/  |l
       /  /   |  |    し'   /      / ̄/
      /  /.  /  |       (   _   /  /   〃,
     (  /   /  l  と と )  て ̄          /
     し'   /__) (_(_,J
2016/08/19(金) 18:35:49.09ID:8R0cm8hF
サブタスク#1: UI言語が正しい場所から取られていない。
XP SP3 (多言語パックインストール済み)からUI言語は、HKCU\Control Panel\Desktop\MultiUILanguageIdから取られるようになっている。
そこにはHKCU\Control Panel\Desktop\MUILanguagePendingもあるが、それはおそらく、UI言語設定が変更されたときに設定され、その後ログインにおいてMultiUILanguageIdに適用される。
2016/08/19(金) 18:39:01.47ID:8R0cm8hF
サブタスク#6: 変更したロケールオプションたちが、次の再起動の前に正しく再ロード(load)されていない。
intl.cpl: 変更したロケールオプションたちは、次の再起動の前に正しく再ロードされていない。
2016/08/19(金) 18:42:19.49ID:8R0cm8hF
サブタスク#7: UI言語オプションが欠けている。
intl.cpl: 現在のユーザーのUI言語を変更する「UI言語オプション」は「言語」タブ内で欠けている。
(Windowsでは、多言語パックがインストール済みの場合に限って表示される)
432 ◆/oPdM2GV7Q
垢版 |
2016/08/19(金) 20:31:28.31ID:8hfdGO6Q
MAME(アーケードゲームエミュレータ)を解析して、3ヶ月程度でギャラクシアン(レトロゲーム)をFPGAに組み込んだことがあるが、
ReactOSは訳が違う。ここ数日調べた感じとして短期間でどうこうなるものでは無く、開発に携わる覚悟・気力が自分には無い。
433片山博文MZ ◆T6xkBnTXz7B0
垢版 |
2016/08/20(土) 13:28:14.45ID:yTIiv1uI
サブタスク#6のパッチ作りました。
https://jira.reactos.org/browse/CORE-10170
434 ◆/oPdM2GV7Q
垢版 |
2016/08/20(土) 22:04:03.30ID:7yn0ONiX
ReactOSのソースを眺めていると、imm32.specファイルが気になった。
どうやら、dllファイル名.specというネーミング規則らしく、
kernel32.spec
shell32.spec
wsock32.spec
などの見慣れたdllの.specファイルを簡単に見つけることができた。
用途は、アプリケーションから呼べる関数を定義している。
なので、.specファイルを見れば、そのdllのエクスポート関数が一目瞭然。
435 ◆/oPdM2GV7Q
垢版 |
2016/08/20(土) 22:09:21.93ID:7yn0ONiX
.specファイル内には、windowsのエクスポート関数を一通り網羅しているようだ。
ただ、関数名は分かっていても、使っているアプリが見当たらないせいが、stubと
いう印をつけているエクスポート関数がある。
このstubの意味は、あることは分かっているが、引数や戻り値すら分からず実装のしようがないという意味のようだ。
2016/08/21(日) 11:33:22.66ID:plx0YAXu
コントロールパネル用の日本語リソースを作成しました。
https://jira.reactos.org/browse/CORE-11882
2016/08/21(日) 11:34:25.14ID:plx0YAXu
サブタスク#1補記:
「ユーザーロケール」(「地域のオプション」プロパティシートの「標準と形式」)は、間違って
レジストリ「HKLM\SYSTEM\CurrentControlSet\Control\Nls\Language」キーの
「Default」と「InstallLanguage」の値を変更するが、その結果、
再起動後にUI言語を変更した (これは想定外の出来事)。
また、間違ってOEMコードページとANSIコードページも変更する。
「ユーザーロケール」設定は、本当は現在のユーザーロケールのみを変更することを想定している。
438片山博文MZ ◆T6xkBnTXz7B0
垢版 |
2016/08/21(日) 17:04:51.24ID:z3c9fTDP
【練習問題】
以下のDLLの日本語リソースを作成せよ:
crypt32、cryptdlg、cryptui、devmgr、modemui、rasdlg、tapiui。

リソースでは、Jaまたはja-JPで日本語を表す。リソーステキストはUTF-8で保存すること。
2016/08/21(日) 17:07:07.30ID:z3c9fTDP
いくつかの日本語リソースを追加しました:
https://jira.reactos.org/browse/CORE-11884

日本語リソースの場合、
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
で記述を始めること。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況