- 1 名前:デフォルトの名無しさん mailto:sageteoff [2016/10/08(土) 12:33:02.29 ID:0jaJMPXG.net]
- Win32APIについての質問はこちらへどうぞ。
■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。 英語版( msdn.microsoft.com/en-us/library/ )の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで ■過去スレ Win32API質問箱 Build122 echo.2ch.net/test/read.cgi/tech/1451988219/
- 950 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 08:26:10.73 ID:XCA+sdta.net]
- 一般的なdllの定義とは違うけど、やりたい放題はできる
- 951 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 08:41:13.28 ID:zrPER7+W.net]
- >>937
ぶちこめればって前提つき?
- 952 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 09:01:43.36 ID:tIQyCYwJ.net]
- やりたい放題を万能と訳してしまう文盲がいると聞いて
- 953 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 09:12:29.27 ID:XCA+sdta.net]
- 日本語としてはイコールじゃないが、これはイコールでいいだろ
そういうの読めないほうが…
- 954 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 09:23:48.72 ID:zrPER7+W.net]
- >>940
>>935も>>939もスルーでいいよ 論点には突っ込めずただ煽りたいだけだろうし
- 955 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 09:44:33.30 ID:Rcj5pIbT.net]
- スレのテンプレも読めない奴が言うと草
- 956 名前:デフォルトの名無しさん mailto:sage [2017/10/02(月) 15:54:05.43 ID:RCSwdawe.net]
- BYTE型の配列をメモリ上で圧縮展開できないか調べてます。
形式はZIPでもそれ以外でもなんでもいいです。 C#だとDeflateStreamというクラスがあるようなのですが、 Win32APIではどういう方法が考えられますか?
- 957 名前:片山博文MZ mailto:sage [2017/10/02(月) 16:04:59.75 ID:glCRVK81.net]
- lzexpandかexpand.exeなら圧縮ファイルの展開ができる。メモリー上でやりたいなら、Win32APIじゃないけどzlibがスタンダード。
- 958 名前:デフォルトの名無しさん mailto:sage [2017/10/02(月) 16:11:45.58 ID:oE42sBRL.net]
- RLE
- 959 名前:デフォルトの名無しさん mailto:sage [2017/10/02(月) 16:30:11.11 ID:L6BLLTIR.net]
- Cabinet.dll系
- 960 名前:デフォルトの名無しさん mailto:sage [2017/10/03(火) 21:46:20.74 ID:njFrOp6b.net]
- >>879
ID:xJTY0L3vは、そのスレを私物化した頭がおかしい人 この人の文章は特徴があるから、該当したらスルー推奨 ここにまで出張してきたのか、なんてこったい
- 961 名前:デフォルトの名無しさん [2017/10/04(水) 22:35:29.05 ID:PQrbpt2K.net]
- >>947 >ここにまで出張してきたのか
というリクエストにお答えして、 https://www.slideshare.net/MoriharuOhzu/ss-14083300 という指摘があって、指摘通り、複数機能を分割してツギハギの算譜を構築していった。 80%位が、VBのライブ(常駐部+非常駐部)の内容に、旧バージョンのQBやGWの内容を継ぎ足していった。 その結果、巨大になりすぎて、発生条件が異なるハングアップが発生した。 常に同じ場所で発生するのであれば、ルーチンの障害が考えられるけど、数行の追加・削除で発生位置が変化するハングアップは、原因特定が困難なメモリーの管理障害と考えられる。 ここでも指摘があった通り、わずか1MB位のソースデータで発生する障害というと、Win32系、つまり、Win-NT系がMS-DOSから引き継いでいる、常駐処理部分の640又は720KBの壁と呼ばれている、メモリーの割り当て部分の内容。 これは、N88, GW-Basic, Q-Basic, Visual Basic とずっと悩まされ続けた内容で、 GQとQBは、オーバーレイ化、VBは、30-60KB位づつ非常駐部(*.FRM)に移動して対応した。 FBでの対応というと、DLL化とGW用語でのチルドレンの使用。 ということで、GWの頃のルーチンの復活、半自動化したチルドレン作成ソフトの復活となった。 ここでは、このあたりの指摘をする人がいないので、探したところ 大学のサイトで、解説があった。 pepper.is.sci.toho-u.ac.jp/index.php?plugin=attach&refer=%BB%B3%C6%E2%A4%CE%BC%F8%B6%C8%A4%CE%A5%DA%A1%BC%A5%B8%2F16%BD%A9%2F%A5%AA%A5%DA%A5%EC%A1%BC %A5%C6%A5%A3%A5%F3%A5%B0%A5%B7%A5%B9%A5%C6%A5%E0&openfile=8-3_%C2%E7%CD%C6%CE%CC%CC%E4%C2%EA%A4%C8%A5%AA%A1%BC%A5%D0%A1%BC%A5%EC%A5%A4.pdf www-higashi.ist.osaka-u.ac.jp/~y-nakamr/lecture/systemsprograming2008/sp20081015.pdf のが見つかった。 日曜プログラマーなので、障害対応ルーチン、つまり、現在実行中のルーチン名、正常終了以外の場合の終了情報、異常値で参照された場合の自動復旧情報をファイルに出力し続けている。 専門のプログラマーはあまりやらない機能だが、ド素人が行う場合には必須の機能。専門のプログラマーの方でも、ゲームプログラムの実行状況をRS-232Cから垂れ流すという市販ソフトがあった。 これが邪魔して、DLL化ができないでいる。
- 962 名前:デフォルトの名無しさん mailto:sage [2017/10/04(水) 22:40:41.59 ID:arhAZny/.net]
- 病院行っとけよ
- 963 名前:片山博文MZ mailto:sage [2017/10/04(水) 23:02:37.86 ID:HMkkIXOi.net]
- DLL化実現したくば、此、再入可能な算符で新たなる記憶管理法に改める事を強いる。新時代たる基本軟件の見識を理解せずば、現代的に非ず也。
- 964 名前:片山博文MZ mailto:sage [2017/10/04(水) 23:21:47.13 ID:HMkkIXOi.net]
- 日曜博客を名乗る者共、何時迄プロに転身せぬ身の程を哀しむ乎。是、翌檜にも劣る迷い人と見るに、難儀なる人生を案ずる也。
我、所謂ギットハブなるウェッブ居留地にて自分の造成物を多数散布しけり。時代を先取るべき博客が時代に遅れるとは如何に惨めなる乎。
- 965 名前:片山博文MZ mailto:sage [2017/10/04(水) 23:29:27.16 ID:HMkkIXOi.net]
- ここまで古いヤツが居たとは。。。
博物館行き決定!!!
- 966 名前:デフォルトの名無しさん [2017/10/05(木) 22:13:32.68 ID:NosQ3QuL.net]
- >>950
高校を4年で卒業した実績を有する吾輩としては、書き下し文を正しく理解する力を能わず。 因りて誤読、誤字、誤文法多数ありなん。人我を天災と呼ぶなん。 人再入可能というなん。なれど具体的例を流れ図で説明するを能わす、Cをもって説明す。 https://ja.wikipedia.org/wiki/%E3%83%AA%E3%82%A8%E3%83%B3%E3%83%88%E3%83%A9%E3%83%B3%E3%83%88 今は昔人Aを診ず、よりてCを持って語る。8080Aを語る我、Cを語ること能わず。 人古き良き伝統を破棄し、新語を創り語る。更なる新語を作るも、これなん、古き伝統なり。 >>952 要は、多重処理が可能な(大型コンピューターでは)一般的なライブルーチンでしょう。 作業領域をサブ内に持たないように、参照側に定義してゆく方法。 外部参照を前提とする大域参照(障害情報の保存)ができないことがDLL化できない理由になっています。 専用の障害処理ルーチンを作れば別ですけど。https://www.slideshare.net/MoriharuOhzu/ss-14083300 な方々が、同じような処理をコピーするなというのです。
- 967 名前:デフォルトの名無しさん [2017/10/05(木) 22:14:41.62 ID:NosQ3QuL.net]
- >>951
友有。遠方に居たり。友センターにて9割を取る博学なり。されど卒業するを能わず。 電算技術を学びたるも9割が中退す。 我5割なり。門にて脚切られたり。電算を学ぶ事能わず、4馬鹿カルテットの門に入る。 電算の夢追いて、野に下る。雅号を探せば文人の末席を汚すを知るなり。 我が電算技術は幼稚なり。人我を踏み越えて新譜を発表す。 時代の先端を征く者、時代には生きられぬ。 >>952 博物館で展示されているような、MS-DOS用ソフトのいくつかは、私が発表した内容の改良品です。 「これこれの機能はありません」と記載されていた「これこれ」は私が発表したものです。 発表から2年ぐらい遅れて申請されて特許になっていた処理方法もあったし、 こんなのやってますよ、って求人に来た某社人事部長に内容を話せば、「おかげで特許取れました」と、お茶菓子を持ってきたし。 「新しい方法を開発した」なんて、販促パンフに書いてあったソフトを買ったらば、電算課の教授陣が「(私のやり方は)無意味な方法だ」と罵倒していた方法だったりした。 同級会の帰りバスの中で「こんなソフトがあったらいいね」「お前描けよ」「英語を読まなきゃなんないからいやだ」と話していたら、だれかわからないですが、真剣に聞いていた人がいました。 この方法は発表されました。大学同窓会での会話から新規に開発されるソフトって結構多いです。 >>869 の指摘、一般教養の講義内容で、 >単精度ではおかしくなる。 倍精度を使って処理する方法があるけど、講義では単精度で対応する方法を教える という内容があった。何かで大学教授の手記が記載されていて、 32bitでやるようにという課題に対して、大学のシステムには64ビット処理ライブラリーが登録されていないから実行不能である(課題に間違いがある)という回答があったこと を嘆いていた内容があった。 この手の処理で、64ビット処理を自作してやった同級生(電算課以外)がいたのですが、大型を使っていたら、電算科教授に殴られたのです。 暴行を受けているような声が聞こえたので、電算室に飛び込んだらば、教授が出て行って、痛みをこらえている同級生がいました。 電算科の暴力教授なら、単精度でやらないと殴りつけていたね。今は昔。
- 968 名前:片山博文MZ mailto:sage [2017/10/05(木) 22:32:50.80 ID:Xv32D2hU.net]
- >>953
ファイルマッピングを使えば、メモリー領域を共有できるよ。
- 969 名前:片山博文MZ mailto:sage [2017/10/05(木) 22:43:02.71 ID:Xv32D2hU.net]
- DLLの共有セクションに変数やコードを入れれば、変数やコードを共有できるよ。
MSVCの場合は、 #pragma data_seg(".shared") ... #pragma data_seg() の中に変数を入れて .defファイルに SECTIONS ".shared" READ WRITE SHARED と書いて、DLLのプロジェクトに.defファイルを追加する。
- 970 名前:片山博文MZ mailto:sage [2017/10/05(木) 22:57:50.83 ID:Xv32D2hU.net]
- https://msdn.microsoft.com/ja-jp/library/h90dkhs0.aspx
- 971 名前:デフォルトの名無しさん mailto:sage [2017/10/06(金) 00:07:58.97 ID:4rQw4n+d.net]
- >>956
ちょこっとだけメモリ共有したいときいいよね 排他処理に InterlockedExchange なんかを使って
- 972 名前:片山博文MZ mailto:sage [2017/10/06(金) 00:17:07.07 ID:u49AV52w.net]
- gcc/g++の場合は、__attribute__((section (".shared"),shared))を使うんだった。
- 973 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 16:13:05.10 ID:9AFyIjHV.net]
- shcreatedirectoryexを無効化するにはどうしたら良いでしょうか?
- 974 名前:片山博文MZ mailto:sage [2017/10/29(日) 16:14:21.78 ID:k1qoOab2.net]
- >>960
APIフック。
- 975 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 16:32:15.17 ID:vBzMORbG.net]
- PEヘッダについての質問ってどこですればいいですか?
スレチな気がします・・・けどお願いします
- 976 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 19:45:55.24 ID:6JLIEeFJ.net]
- 聴き給へ
- 977 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 21:00:51.96 ID:vBzMORbG.net]
- ありがとうございます
APIフックのための仲介DLL作成ツールを使おうと思ったんですけどkernel32.dllやuser32.dllを引数に与えても動かなくて エラーの内容見てみたらNumberOfRvaAndSizes=0って出ていて 調べてみるとディレクトリ配列の数を示すパラメータみたいなんでPE INFOをつかって見てみました そうしたら、Directoriesの情報タブにはExportの内容が表示されていたのですがDirectories Exportのサイズは0でした ここで疑問なんですが、Directoriesのパラメータ(Rva, Size)がPE Infoに表示されているのにディレクトリ配列の数が0になっているのはなぜでしょうか? また、ExportディレクトリがSize=0ならエクスポート関数のリストはどこから来たんでしょうか? そのソフトのソースを見てみると本来はディレクトリ配列の最初の要素からエクスポート関数のリストを得るものだったのですがそのようなメンバはない(というかディレクトリ配列の数が0)みたいです どなたかわかりましたらよろしくお願いします
- 978 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 23:03:33.39 ID:9FNc82fk.net]
- 手元にWindows環境がないので当てずっぽうに過ぎないが
dllがx64の奴だからと予想
- 979 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 23:21:19.33 ID:vBzMORbG.net]
- >>965
ありがとうございます、user「32」.dllとなっていたのでx86と同じだと思っていました 試してみたいですけど家に32bit環境ないですね・・・
- 980 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 16:30:21.10 ID:speVoQlz.net]
- wow64の中のを入れた?
- 981 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 00:50:49.35 ID:ZqGpDlPC.net]
- >>967
>>964です wow64のなかにあったuser32.dllを使うと動きました、ありがとうございます! できれば、なぜ64bit版としか思えないフォルダ名のなかのものなら動いたのか、そもそもwow64とsystem32の同名ファイルは何が違うのか教えていただけないでしょうか?
- 982 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 00:59:31.38 ID:ZqGpDlPC.net]
- すみません、ググったら出てきました
System32フォルダに入ってる方のdllが64bit用、wow64の中が32bit用という逆転があるんですね 教えていただいた方々ありがとうございました
- 983 名前:片山博文MZ mailto:sage [2017/11/08(水) 01:01:16.79 ID:TZ5JAUzS.net]
- マイクロソフトは、64ビット環境で動くDLLをsystem32に格納し、32ビットのDLLをwow64に格納することにした。
32ビットと同じ名前なのは、互換性のため。詳しくはWin64APIについて調べるといい。
- 984 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 01:01:34.79 ID:0mQs8SG2.net]
- >>968
wow64 = Windows (32bit) on Windows 64bit →32bit system32 = 昔(32bit)の時のフォルダー名変更してないだけ →64bit
- 985 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 01:31:09.47 ID:MEe7IGP8.net]
- systemのままで良かったよね
- 986 名前:デフォルトの名無しさん [2017/11/08(水) 03:22:35.44 ID:pi2d/ZnM.net]
- 32ビットはブームだったからなあ
そのくせProgram Filesはx86ってなんだよって感じ
- 987 名前:デフォルトの名無しさん [2017/11/08(水) 03:41:30.24 ID:R0qhel/o.net]
- system32はWoW16でsystemを使ってたからねしょうがないね
- 988 名前:デフォルトの名無しさん [2017/11/08(水) 06:10:07.81 ID:ZWKv78KM.net]
- >>969
w(32) on w64 の略だから逆転はしていない 紛らわしいネーミングだとは思うが ディレクトリ名決め打ちの糞ソフトが 大量に出回ったあとだからやむを得ない
- 989 名前:デフォルトの名無しさん [2017/11/08(水) 18:38:40.88 ID:ROkXXR0p.net]
- win32Windowsアプリって真っ白から作るんだな昔凄い量打ち込んでやっとウィンドウ出したのを思い出したわ・・・
- 990 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 18:48:38.98 ID:ZM9wnitb.net]
- main()から手打ちしてたのはwin3.1時代までだなw
- 991 名前:デフォルトの名無しさん [2017/11/08(水) 19:00:03.99 ID:ROkXXR0p.net]
- >>977
今は基礎作ってくれるのか10年前だからな基礎作るだけで学校の午後の授業が半分使ったしw
- 992 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 19:02:13.24 ID:u5hLhTv2.net]
- 10年前でも、WinMainから書いて無かったか?
- 993 名前:デフォルトの名無しさん [2017/11/08(水) 19:07:13.31 ID:ROkXXR0p.net]
- 書いてなかったねえprint貰って全部手書きで最初からウィンドウの幅構成とかカタカタ打ってたなそれか楽させないために空のファイルで作らされてたか
- 994 名前:片山博文MZ mailto:sage [2017/11/08(水) 19:09:52.22 ID:TZ5JAUzS.net]
- 今じゃWTLとかMFCとかが無料で使えるから、手作業は減っているはずだ。
https://github.com/katahiromz/MZC4
- 995 名前:デフォルトの名無しさん [2017/11/08(水) 20:59:58.61 ID:ROkXXR0p.net]
- 構成の仕方まだわからんから出来ない
- 996 名前:デフォルトの名無しさん [2017/11/08(水) 21:34:54.68 ID:R0qhel/o.net]
- 最後にWTLウィザード使ったのいつだろう?ってぐらいご無沙汰だわ
- 997 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 23:59:13.54 ID:S5satkVH.net]
- バッチプログラムから起動するかコマンドラインから起動するかで WinMain() アプリからの戻り方が違うのが困る、いまさらだが。
- 998 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 00:24:21.64 ID:UmTkKmYx.net]
- バッチで?
- 999 名前:デフォルトの名無しさん [2017/11/09(木) 03:45:53.03 ID:5qwvxsG7.net]
- コマンドプロンプトやパワーシェル上から手入力でnotepad.exeと入力してメモ帳を起動すると、すぐに端末に制御が戻ってくる。
一方、以下の内容のように2回メモ帳を起動するbatファイルを作り実行すると一つ目のメモ帳が終わるまで待つことがわかる。 notepad.exe notepad.exe なお、windows10の場合、電卓calc.exeがユニバーサルWindowsプラットフォームのアプリなので 以下の内容のbatファイルからの起動でもすぐに制御が戻ってくるので電卓が2つ同時起動された状態になる。 calc.exe calc.exe ようするに、コンソールアプリ、Windowアプリ、ユニバーサルWindowsプラットフォームアプリの3種類でそれぞれ挙動が違う。
- 1000 名前:デフォルトの名無しさん [2017/11/09(木) 04:18:01.90 ID:OMOJ5BWv.net]
- 昔はopenGLを使ってたんだったわ昔のプロジェクト起動したらおまじないがエラー起こしてた
- 1001 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 05:04:07.82 ID:RrHmFgzV.net]
- コマンドプロンプト上でのバッチファイル実行の挙動はDOSの仕様(MS-DOS)
バッチファイルは順次に作動するように作られてるので、WIN32プロセスの 終了待機が行われる。 ユニバーサルアプリは、DOS窓がEXEの終了待機を処理できないだけ。 WIN32アプリも、作りによっては同じく終了待機できない可能性はある。
- 1002 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 05:06:38.10 ID:RrHmFgzV.net]
- 補足すると、exeの戻り値で処理を分けるっていうのはDOS時代よく行うことだったので、
終了待機しないと戻り値が取れなくて困る。
- 1003 名前:デフォルトの名無しさん [2017/11/09(木) 10:21:19.15 ID:5qwvxsG7.net]
- OSの正常なシャットダウンや再起動を妨げるクソなドライバー ZN200pcie.sys が悪名を轟かせている、
SKNET MonsterTV PCIE3 のドライバー追加・削除する時に処理をある程度自動化するため今もバッチ処理使ってる。 ドライバーを追加・削除するためのSKNET謹製アプリがGUIアプリなので終了を待ってくれないといろいろ困る。 set WAIT_EXE="C:\Program Files\Git\usr\bin\sleep.exe" taskkill /F /IM MonsterTVLivePlayer.exe taskkill /F /IM MonsterTVPlayer.exe taskkill /F /IM MonsterTVMenu.exe sc stop MonsterTVService %WAIT_EXE% 3 PCIE3_win10_Driver\DriverInstall.exe <-- こいつがGUIアプリ。 sc start MonsterTVService exit /B
- 1004 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 10:33:48.20 ID:RrHmFgzV.net]
- PCIE3_win10_Driver\DriverInstall.exe の終了を待ちたいけど待ってくれないなら、
このスレ的にはそれを起動して終了を待つプログラムを組めばいいんじゃない?
- 1005 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 10:46:19.38 ID:5qwvxsG7.net]
- >>991
失礼。質問したかったんじゃなくて、バッチがいまだ現役な例をあげた。 バッチでPCIE3_win10_Driver\DriverInstall.exe を終了待ちできてるので問題ない。
- 1006 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 11:23:34.26 ID:UInw5/Yz.net]
- 次スレよろ
- 1007 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 11:38:29.16 ID:9lAepYsb.net]
- 待ってくれないならループで待つようにすればいいだけの話だな
- 1008 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 16:34:53.73 ID:3Mpnex4d.net]
- 待っててくれないなら追いかければいいよ
- 1009 名前:デフォルトの名無しさん [2017/11/11(土) 19:44:42.77 ID:4LNBDgYy.net]
- Win32API質問箱 Build124
https://mevius.5ch.net/test/read.cgi/tech/1510395780/
- 1010 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 17:50:54.93 ID:k+Q3OR2Q.net]
- test
mevius.2ch.net/test/read.cgi/tech/1510395780/
- 1011 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 17:51:42.96 ID:k+Q3OR2Q.net]
- なるほど新リンク先は 5ch がいいのか 2ch がいいのか
ようわからん 教えてけれ
- 1012 名前:片山博文MZ mailto:sage [2017/11/12(日) 17:55:07.59 ID:hcIx1LXl.net]
- >>998
将来的には5chに移行するから、5chがいい。
- 1013 名前:デフォルトの名無しさん [2017/11/12(日) 18:27:23.43 ID:C1sLEmf0.net]
- ラスト
- 1014 名前:1001 [Over 1000 Thread.net]
- このスレッドは1000を超えました。
新しいスレッドを立ててください。 life time: 400日 5時間 54分 21秒
- 1015 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|