Win32API質問箱 Build123at TECH
Win32API質問箱 Build123 - 暇つぶし2ch951:デフォルトの名無しさん
17/09/29 08:41:13.28 zrPER7+W.net
>>937
ぶちこめればって前提つき?

952:デフォルトの名無しさん
17/09/29 09:01:43.36 tIQyCYwJ.net
やりたい放題を万能と訳してしまう文盲がいると聞いて

953:デフォルトの名無しさん
17/09/29 09:12:29.27 XCA+sdta.net
日本語としてはイコールじゃないが、これはイコールでいいだろ
そういうの読めないほうが…

954:デフォルトの名無しさん
17/09/29 09:23:48.72 zrPER7+W.net
>>940
>>935>>939もスルーでいいよ
論点には突っ込めずただ煽りたいだけだろうし

955:デフォルトの名無しさん
17/09/29 09:44:33.30 Rcj5pIbT.net
スレのテンプレも読めない奴が言うと草

956:デフォルトの名無しさん
17/10/02 15:54:05.43 RCSwdawe.net
BYTE型の配列をメモリ上で圧縮展開できないか調べてます。
形式はZIPでもそれ以外でもなんでもいいです。
C#だとDeflateStreamというクラスがあるようなのですが、
Win32APIではどういう方法が考えられますか?

957:片山博文MZ
17/10/02 16:04:59.75 glCRVK81.net
lzexpandかexpand.exeなら圧縮ファイルの展開ができる。メモリー上でやりたいなら、Win32APIじゃないけどzlibがスタンダード。

958:デフォルトの名無しさん
17/10/02 16:11:45.58 oE42sBRL.net
RLE

959:デフォルトの名無しさん
17/10/02 16:30:11.11 L6BLLTIR.net
Cabinet.dll系

960:デフォルトの名無しさん
17/10/03 21:46:20.74 njFrOp6b.net
>>879
ID:xJTY0L3vは、そのスレを私物化した頭がおかしい人
この人の文章は特徴があるから、該当したらスルー推奨
ここにまで出張してきたのか、なんてこったい

961:デフォルトの名無しさん
17/10/04 22:35:29.05 PQrbpt2K.net
>>947 >ここにまで出張してきたのか
というリクエストにお答えして、
URLリンク(www.slideshare.net)
という指摘があって、指摘通り、複数機能を分割してツギハギの算譜を構築していった。
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の頃のルーチンの復活、半自動化したチルドレン作成ソフトの復活となった。
ここでは、このあたりの指摘をする人がいないので、探したところ
大学のサイトで、解説があった。
URLリンク(pepper.is.sci.toho-u.ac.jp)
%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
URLリンク(www-higashi.ist.osaka-u.ac.jp)
のが見つかった。
日曜プログラマーなので、障害対応ルーチン、つまり、現在実行中のルーチン名、正常終了以外の場合の終了情報、異常値で参照された場合の自動復旧情報をファイルに出力し続けている。
専門のプログラマーはあまりやらない機能だが、ド素人が行う場合には必須の機能。専門のプログラマーの方でも、ゲームプログラムの実行状況をRS-232Cから垂れ流すという市販ソフトがあった。
これが邪魔して、DLL化ができないでいる。

962:デフォルトの名無しさん
17/10/04 22:40:41.59 arhAZny/.net
病院行っとけよ

963:片山博文MZ
17/10/04 23:02:37.86 HMkkIXOi.net
DLL化実現したくば、此、再入可能な算符で新たなる記憶管理法に改める事を強いる。新時代たる基本軟件の見識を理解せずば、現代的に非ず也。

964:片山博文MZ
17/10/04 23:21:47.13 HMkkIXOi.net
日曜博客を名乗る者共、何時迄プロに転身せぬ身の程を哀しむ乎。是、翌檜にも劣る迷い人と見るに、難儀なる人生を案ずる也。
我、所謂ギットハブなるウェッブ居留地にて自分の造成物を多数散布しけり。時代を先取るべき博客が時代に遅れるとは如何に惨めなる乎。

965:片山博文MZ
17/10/04 23:29:27.16 HMkkIXOi.net
ここまで古いヤツが居たとは。。。
博物館行き決定!!!

966:デフォルトの名無しさん
17/10/05 22:13:32.68 NosQ3QuL.net
>>950
高校を4年で卒業した実績を有する吾輩としては、書き下し文を正しく理解する力を能わず。
因りて誤読、誤字、誤文法多数ありなん。人我を天災と呼ぶなん。
人再入可能というなん。なれど具体的例を流れ図で説明するを能わす、Cをもって説明す。
URLリンク(ja.wikipedia.org)
今は昔人Aを診ず、よりてCを持って語る。8080Aを語る我、Cを語ること能わず。
人古き良き伝統を破棄し、新語を創り語る。更なる新語を作るも、これなん、古き伝統なり。
>>952
要は、多重処理が可能な(大型コンピューターでは)一般的なライブルーチンでしょう。
作業領域をサブ内に持たないように、参照側に定義してゆく方法。
外部参照を前提とする大域参照(障害情報の保存)ができないことがDLL化できない理由になっています。
専用の障害処理ルーチンを作れば別ですけど。URLリンク(www.slideshare.net)
な方々が、同じような処理をコピーするなというのです。

967:デフォルトの名無しさん
17/10/05 22:14:41.62 NosQ3QuL.net
>>951
友有。遠方に居たり。友センターにて9割を取る博学なり。されど卒業するを能わず。
電算技術を学びたるも9割が中退す。
我5割なり。門にて脚切られたり。電算を学ぶ事能わず、4馬鹿カルテットの門に入る。
電算の夢追いて、野に下る。雅号を探せば文人の末席を汚すを知るなり。
我が電算技術は幼稚なり。人我を踏み越えて新譜を発表す。
時代の先端を征く者、時代には生きられぬ。
>>952
博物館で展示されているような、MS-DOS用ソフトのいくつかは、私が発表した内容の改良品です。
「これこれの機能はありません」と記載されていた「これこれ」は私が発表したものです。
発表から2年ぐらい遅れて申請されて特許になっていた処理方法もあったし、
こんなのやってますよ、って求人に来た某社人事部長に内容を話せば、「おかげで特許取れました」と、お茶菓子を持ってきたし。
「新しい方法を開発した」なんて、販促パンフに書いてあったソフトを買ったらば、電算課の教授陣が「(私のやり方は)無意味な方法だ」と罵倒していた方法だったりした。
同級会の帰りバスの中で「こんなソフトがあったらいいね」「お前描けよ」「英語を読まなきゃなんないからいやだ」と話していたら、だれかわからないですが、真剣に聞いていた人がいました。
この方法は発表されました。大学同窓会での会話から新規に開発されるソフトって結構多いです。
>>869 の指摘、一般教養の講義内容で、
>単精度ではおかしくなる。
倍精度を使って処理する方法があるけど、講義では単精度で対応する方法を教える
という内容があった。何かで大学教授の手記が記載されていて、
32bitでやるようにという課題に対して、大学のシステムには64ビット処理ライブラリーが登録されていないから実行不能である(課題に間違いがある)という回答があったこと
を嘆いていた内容があった。
この手の処理で、64ビット処理を自作してやった同級生(電算課以外)がいたのですが、大型を使っていたら、電算科教授に殴られたのです。
暴行を受けているような声が聞こえたので、電算室に飛び込んだらば、教授が出て行って、痛みをこらえている同級生がいました。
電算科の暴力教授なら、単精度でやらないと殴りつけていたね。今は昔。

968:片山博文MZ
17/10/05 22:32:50.80 Xv32D2hU.net
>>953
ファイルマッピングを使えば、メモリー領域を共有できるよ。

969:片山博文MZ
17/10/05 22:43:02.71 Xv32D2hU.net
DLLの共有セクションに変数やコードを入れれば、変数やコードを共有できるよ。
MSVCの場合は、
#pragma data_seg(".shared")
...
#pragma data_seg()
の中に変数を入れて
.defファイルに
SECTIONS
".shared" READ WRITE SHARED
と書いて、DLLのプロジェクトに.defファイルを追加する。

970:片山博文MZ
17/10/05 22:57:50.83 Xv32D2hU.net
URLリンク(msdn.microsoft.com)

971:デフォルトの名無しさん
17/10/06 00:07:58.97 4rQw4n+d.net
>>956
ちょこっとだけメモリ共有したいときいいよね
排他処理に InterlockedExchange なんかを使って

972:片山博文MZ
17/10/06 00:17:07.07 u49AV52w.net
gcc/g++の場合は、__attribute__((section (".shared"),�shared))を使うんだった。

973:デフォルトの名無しさん
17/10/29 16:13:05.10 9AFyIjHV.net
shcreatedirectoryexを無効化するにはどうしたら良いでしょうか?

974:片山博文MZ
17/10/29 16:14:21.78 k1qoOab2.net
>>960
APIフック。

975:デフォルトの名無しさん
17/11/06 16:32:15.17 vBzMORbG.net
PEヘッダについての質問ってどこですればいいですか?
スレチな気がします・・・けどお願いします

976:デフォルトの名無しさん
17/11/06 19:45:55.24 6JLIEeFJ.net
聴き給へ

977:デフォルトの名無しさん
17/11/06 21:00:51.96 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:デフォルトの名無しさん
17/11/06 23:03:33.39 9FNc82fk.net
手元にWindows環境がないので当てずっぽうに過ぎないが
dllがx64の奴だからと予想

979:デフォルトの名無しさん
17/11/06 23:21:19.33 vBzMORbG.net
>>965
ありがとうございます、user「32」.dllとなっていたのでx86と同じだと思っていました
試してみたいですけど家に32bit環境ないですね・・・

980:デフォルトの名無しさん
17/11/07 16:30:21.10 speVoQlz.net
wow64の中のを入れた?

981:デフォルトの名無しさん
17/11/08 00:50:49.35 ZqGpDlPC.net
>>967
>>964です
wow64のなかにあったuser32.dllを使うと動きました、ありがとうございます!
できれば、なぜ64bit版としか思えないフォルダ名のなかのものなら動いたのか、そもそもwow64とsystem32の同名ファイルは何が違うのか教えていただけないでしょうか?

982:デフォルトの名無しさん
17/11/08 00:59:31.38 ZqGpDlPC.net
すみません、ググったら出てきました
System32フォルダに入ってる方のdllが64bit用、wow64の中が32bit用という逆転があるんですね
教えていただいた方々ありがとうございました

983:片山博文MZ
17/11/08 01:01:16.79 TZ5JAUzS.net
マイクロソフトは、64ビット環境で動くDLLをsystem32に格納し、32ビットのDLLをwow64に格納することにした。
32ビットと同じ名前なのは、互換性のため。詳しくはWin64APIについて調べるといい。

984:デフォルトの名無しさん
17/11/08 01:01:34.79 0mQs8SG2.net
>>968
wow64 = Windows (32bit) on Windows 64bit
→32bit
system32 = 昔(32bit)の時のフォルダー名変更してないだけ
→64bit

985:デフォルトの名無しさん
17/11/08 01:31:09.47 MEe7IGP8.net
systemのままで良かったよね

986:デフォルトの名無しさん
17/11/08 03:22:35.44 pi2d/ZnM.net
32ビットはブームだったからなあ
そのくせProgram Filesはx86ってなんだよって感じ

987:デフォルトの名無しさん
17/11/08 03:41:30.24 R0qhel/o.net
system32はWoW16でsystemを使ってたからねしょうがないね

988:デフォルトの名無しさん
17/11/08 06:10:07.81 ZWKv78KM.net
>>969
w(32) on w64
の略だから逆転はしていない
紛らわしいネーミングだとは思うが
ディレクトリ名決め打ちの糞ソフトが
大量に出回ったあとだからやむを得ない

989:デフォルトの名無しさん
17/11/08 18:38:40.88 ROkXXR0p.net
win32Windowsアプリって真っ白から作るんだな昔凄い量打ち込んでやっとウィンドウ出したのを思い出したわ・・・

990:デフォルトの名無しさん
17/11/08 18:48:38.98 ZM9wnitb.net
main()から手打ちしてたのはwin3.1時代までだなw

991:デフォルトの名無しさん
17/11/08 19:00:03.99 ROkXXR0p.net
>>977
今は基礎作ってくれるのか10年前だからな基礎作るだけで学校の午後の授業が半分使ったしw

992:デフォルトの名無しさん
17/11/08 19:02:13.24 u5hLhTv2.net
10年前でも、WinMainから書いて無かったか?

993:デフォルトの名無しさん
17/11/08 19:07:13.31 ROkXXR0p.net
書いてなかったねえprint貰って全部手書きで最初からウィンドウの幅構成とかカタカタ打ってたなそれか楽させないために空のファイルで作らされてたか

994:片山博文MZ
17/11/08 19:09:52.22 TZ5JAUzS.net
今じゃWTLとかMFCとかが無料で使えるから、手作業は減っているはずだ。
URLリンク(github.com)

995:デフォルトの名無しさん
17/11/08 20:59:58.61 ROkXXR0p.net
構成の仕方まだわからんから出来ない

996:デフォルトの名無しさん
17/11/08 21:34:54.68 R0qhel/o.net
最後にWTLウィザード使ったのいつだろう?ってぐらいご無沙汰だわ

997:デフォルトの名無しさん
17/11/08 23:59:13.54 S5satkVH.net
バッチプログラムから起動するかコマンドラインから起動するかで WinMain() アプリからの戻り方が違うのが困る、いまさらだが。

998:デフォルトの名無しさん
17/11/09 00:24:21.64 UmTkKmYx.net
バッチで?

999:デフォルトの名無しさん
17/11/09 03:45:53.03 5qwvxsG7.net
コマンドプロンプトやパワーシェル上から手入力でnotepad.exeと入力してメモ帳を起動すると、すぐに端末に制御が戻ってくる。
一方、以下の内容のように2回メモ帳を起動するbatファイルを作り実行すると一つ目のメモ帳が終わるまで待つことがわかる。
notepad.exe
notepad.exe
なお、windows10の場合、電卓calc.exeがユニバーサルWindowsプラットフォームのアプリなので
以下の内容のbatファイルからの起動でもすぐに制御が戻ってくるので電卓が2つ同時起動された状態になる。
calc.exe
calc.exe
ようするに、コンソールアプリ、Windowアプリ、ユニバーサルWindowsプラットフォームアプリの3種類でそれぞれ挙動が違う。

1000:デフォルトの名無しさん
17/11/09 04:18:01.90 OMOJ5BWv.net
昔はopenGLを使ってたんだったわ昔のプロジェクト起動したらおまじないがエラー起こしてた

1001:デフォルトの名無しさん
17/11/09 05:04:07.82 RrHmFgzV.net
コマンドプロンプト上でのバッチファイル実行の挙動はDOSの仕様(MS-DOS)
バッチファイルは順次に作動するように作られてるので、WIN32プロセスの
終了待機が行われる。
ユニバーサルアプリは、DOS窓がEXEの終了待機を処理できないだけ。
WIN32アプリも、作りによっては同じく終了待機できない可能性はある。

1002:デフォルトの名無しさん
17/11/09 05:06:38.10 RrHmFgzV.net
補足すると、exeの戻り値で処理を分けるっていうのはDOS時代よく行うことだったので、
終了待機しないと戻り値が取れなくて困る。

1003:デフォルトの名無しさん
17/11/09 10:21:19.15 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:デフォルトの名無しさん
17/11/09 10:33:48.20 RrHmFgzV.net
PCIE3_win10_Driver\DriverInstall.exe の終了を待ちたいけど待ってくれないなら、
このスレ的にはそれを起動して終了を待つプログラムを組めばいいんじゃない?

1005:デフォルトの名無しさん
17/11/09 10:46:19.38 5qwvxsG7.net
>>991
失礼。質問したかったんじゃなくて、バッチがいまだ現役な例をあげた。
バッチでPCIE3_win10_Driver\DriverInstall.exe を終了待ちできてるので問題ない。

1006:デフォルトの名無しさん
17/11/09 11:23:34.26 UInw5/Yz.net
次スレよろ

1007:デフォルトの名無しさん
17/11/09 11:38:29.16 9lAepYsb.net
待ってくれないならループで待つようにすればいいだけの話だな

1008:デフォルトの名無しさん
17/11/09 16:34:53.73 3Mpnex4d.net
待っててくれないなら追いかければいいよ

1009:デフォルトの名無しさん
17/11/11 19:44:42.77 4LNBDgYy.net
Win32API質問箱 Build124
スレリンク(tech板)

1010:デフォルトの名無しさん
17/11/12 17:50:54.93 k+Q3OR2Q.net
test
スレリンク(tech板)

1011:デフォルトの名無しさん
17/11/12 17:51:42.96 k+Q3OR2Q.net
なるほど新リンク先は 5ch がいいのか 2ch がいいのか
ようわからん
教えてけれ

1012:片山博文MZ
17/11/12 17:55:07.59 hcIx1LXl.net
>>998
将来的には5chに移行するから、5chがいい。

1013:デフォルトの名無しさん
17/11/12 18:27:23.43 C1sLEmf0.net
ラスト

1014:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 400日 5時間 54分 21秒

1015:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch